How to install as3 corelib to activate png encoder - actionscript-3

I want to add a save option to a coloring book app but so far I've been absolutely stumped with how to activate the as3 corelib even though I downloaded it. Now to be clear, I'm a novice in the world of programming, so any help would be greatly appreciated.

Actionscript has native jpeg and png compression; no need to use as3corelib or Flex:
http://help.adobe.com/en_US/as3/dev/WS4768145595f94108-17913eb4136eaab51c7-8000.html
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/PNGEncoderOptions.html
// Compress a BitmapData object as a PNG file.
var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00);
var byteArray:ByteArray = new ByteArray();
bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.PNGEncoderOptions(), byteArray);

There's no need to use an external library if you are using flex 3 or later. The mx.graphics.codec.PNGEncoder class is available for FP 9 / Air 1.1

If you're using Flash Builder:
Take as3corelib.swc and copy it into your project's lib folder. If you don't have a lib folder in your project, create one and register it by right-clicking the project > properties > Flex Build Path > Add SWC... button.
If you're using Flash Professional:
Go to File > Actionscript settings, Library path tab, + button, and add the path to your as3corelib.swc (ideally a sub-folder of your project).

Related

Away3d SWC: some classes are missingg

I downloaded the built version of Away3D 4.1.6 and imported to my Flash Pro CS6. But there some classes are missing:
away3d.entities.Mesh
away3d.entities.Camera
away3d.entities.Sprite3D
maybe other classes, too. (I've not compared).
There are no errors when compiling this code:
var mesh:Mesh = new Mesh(new CubeGeometry());
but, I cannot view the available properties and functions, when I put a dot after the variable mesh.
After this I downloaded source files of away3d, but compiling takes about a minute. So, it gets boring to work. What should I do?
I found this bug too. I solved this problem by generating SWC of their own. Just download source files and create a lib project (FB).
PS. my SWC file is 20% less than default. I don't now why.

how to share a component in as3

I have a custom component(eg. MyButton) used in several swfs. I'd like to share the component in runtime, thus once our designer change the button's visual effect, we need not publish all flas that uses this button.
In as2, I can put this button in an asset fla(eg. lib.swf) and check the "export for runtime share" in symbol property. Then copy the button to a fla(eg. main.swf) and check the "import for runtime share", this works fine. However in as3, after doing above, if I put a button instance on stage and modify its inspectable property, i'll get a compile error "1046:Type was not found or was not a compile-time constant".
I searched the web and found this http://www.kirupa.com/forum/showthread.php?317257-Runtime-Shared-Library-woes. Then I tried the swc approach, but it seems swc will be compiled into swf, it doesn't share at all.
the shared component must be put on the stage, because all fla will be modified by our designer while he knows nothing about programing.
we can not use flex, all operation must be done in Flash CS5.
1: Placed on Library all of your components to .fla as follows: my fla names BrushClip.fla the components wrapped a MovieClip. and be ActionScript Linking export to ActionScript Class.
2: File - Publish Settings check SWC format and publish as follows:
3: check, created swc file in your project. now you can using a swc other project you must linking to SWC library in File-ActionScript Settings-Library Path. and later if you change a components design, re-publish. and copy and paste swc file. automatically will change restart swf file. BrushClip.swc has a all components.
you can access as follows:
var brushClip0:MovieClip = new BrushClip0();
addChild(brushClip0);
var brushClip10:MovieClip = new BrushClip10();
addChild(brushClip10);
I've found the solution.
Give the Sprite that holds the imported components a binding class
Edit the class file, declare the components yourself regardless of whether checked the "auto declare instance on stage"

How to use a relative path for a swc library in Flash Builder 4.6

I'm using Flash Builder 4.6 and in one of my ActionScript projects, I have a referenced .swc library file.
The way I added it was Project > Properties > Flex Library Build Path > Library Path tab > Add SWC...
Here a popup occurs and I must select a .swc file by browsing through my machine and selecting one. Once I do that, it'll display the added library like this:
somelibrary.swc - /Full/Path/to/the/swc/here/lib/somelibrary.swc
What I want to be able to do is use a relative path instead, like:
somelibrary.swc - ../../lib/somelibrary.swc
Does anyone know a way to do this or a workaround to be able to use relative paths for swc libraries in Flash Builder?
Thanks!
I would suggest to dump mxmlc compilator's settings to xml file (where you can add all required swcs and its paths by hands using your favorite text editor).
Add compilator option -dump-config=build.xml
Find this xml config, modify it for your needs
Replace -dump-config=build.xml with -load-config=build.xml
Add compilator option:
-library-path=../../lib/somelibrary.swc

flash cs5: compiling fla with huge internal library takes YEARS !

by using flash cs5 with a huge internal image library (over 300+ small png-files) i need more than 90seconds for each compiling action! the as code is pretty well, also my computer (quad core, 4gigs of ram). i've found out, that by exporting the files to "stage 1" (bild 1 in my screenshot) flash starts to hang around, but i don't know why...
.
how to speed this process up ?
__________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________
my solution did not work:
so i've played around and ended up creating *.as-files for each single bitmap, but the speed-result is the same (maybe 10% - 15% faster than before)...
package
{
import flash.display.*;
dynamic public class MY_BITMAP_NAME extends BitmapData
{
public function MY_BITMAP_NAME(width:int = 500, height:int = 135)
{
super(width, height);
return;
}
}
}
i can not work fast enough to debug my project files :-(
The solution would be to move your assets inside a precompiled SWC library that you will only recompile when they change.
Building the library:
create a new FLA and move in your Bitmaps,
each image needs to have a linkage class name and be exported in first frame; you don't have to create an AS class, Flash will generate them,
in the publish settings, "Flash" tab, check "Export SWC",
this SWC library will be published in the same location as the SWF; in CS4-5 you can't prevent the SWF creation.
Using the library
in your main FLA publish settings, "Flash" tab, open the Advanced Actionscript 3 settings dialog,
in the "Library path" tab you can add the assets library SWC; make sure the "Link Type" is "Merged into code",
SWC content will be available in your main FLA as if they were in the library.
It is worth noting that:
you must instantiate these assets by code (ie. new AssetName): they will not appear in your main FLA's Library panel and you can not drop them on the timeline,
only assets you explicitly reference in your code will be available at run time; if you are using getDefinitionByName() you must still import the assets somewhere in your code. For instance you can declare an Array containing all your assets classes (ex: var assets:Array = [AssetClass1, AssetClass2,...]).
if these 300+ images don't change too often, you could create a second .fla, where you only put the images in the library. Then you publish that .fla as a swc file (You can set this in the publish settings).
And you use that swc in your original .fla (that now has no images anymore), where you have your code (using the swc means, in the publish settings -> actionscript settings, you set the swc as a library reference).
This way, Flash only has to compile your code and simply takes the already compiled images from the swc. It then should compile much faster.
ctrl+enter, that will compile all things in library and the AS code.
most situation that use just change little things, and then compile it.
it would waste much time that no need to waste.
you can export some thing that would not always be changed to SWC file, and to to publish setting,
add SWC file into your Fla. or move you Fla project to Flash build, compile use less time more than in flash ide.

Using Omniture ActionSource with Flash IDE

I have a flash app built in ActionScript 3 utilizing a document class.
I have followed the documentation for implementing Omniture ActionSource tracking by adding the ActionSource component to my fla's library, and then importing it into the document class and running the configuration code. However, the app fails to compile because it cannot resolve the path to the component (com.omniture.ActionSource).
My class path contains a com directory (package) where most of the classes I use in my projects reside.
Has anyone had success implementing ActionSource in this manner?
Thanks
Alpinista - make sure you are importing the class in your DocumentClass
import com.omniture.ActionSource;
And make sure you are adding the ActionSource class to the project by either using the mxp feature:
Command Menu > Omniture - Add ActionSource to Library
OR
You can add the ActionSource SWC file to your publish setting if you have CS4 or later:
File > Publish Setting > Flash > Settings... button > Library Path Tab > Click (+) button > Click Red Envelope button > Select the SWC file, then hit okay.
If you still can't publish, then you probably forgetting something even more simple, or have a typeo/syntax error.