An Actionscript project is, like its name involve, a pure actionscript project.
No .fla file is needed.....so how do you create your asset ?
Several ways
- draw it by code using graphics
- load external file (png, swf, etc...)
- embed the file as a class (Flash Builder only)
The cons of embedding is extra bytes the Flex SDK use to handle embed data throught SpriteAsset, MovieClipAsset,etc...
The basic way to embed asset is
//for PNG/GIF/JPG
[Embed(source="./assets/raw/bulle2.png")]
private var png:Class;
..
var tt:BitmapAsset = BitmapAsset( new png() );
addChild( tt );
//for SWF asset
[Embed(source="./assets/assets.swf", symbol="Bulle")]
private var bulle:Class;
..
var tt:SpriteAsset = SpriteAsset( new bulle() );
addChild( tt );
so, what if you want if bulle is in fact a Bulle class not the raw Class ?
Using this way, you can't do anything...
you can't cast, you can't access to Bulle properties and functions...nothing!
bulle is a closed asset
Thanks to a comment on a post of Bit-101, a better way to embed exists :
package
{
import flash.display.Sprite;
[Embed(source="./assets/assets.swf", symbol="Bulle")]
public class Bulle extends Sprite
{
public function Bulle()
{
super();
trace("Bulle created");
}
This method is, for me, a great value because the class code isn't included in the assets.swf file !
It's mean
- my graphist just needs to create her asset and assign it a classname
- the class doesn't need to be coded before the asset to be created (and stop the fight "code or gfx first ?")
- the asset could be used on several games with different code (!marvelous!)
- any extended classes will inherit the embed asset
- no need for SpriteAsset, MovieClipAsset,etc... ex: with the 'bulle' asset below I produce a 20708bytes file using standard embed and a 10586bytes file using optimized one (10kb won!)
Of course, you could do the same for PNG/JPG/GIF
[Embed(source="./assets/raw/bulle2.png")]
public class Png extends Bitmap{}
and MP3
[Embed(source="./assets/beep.mp3")]
public class Beep extends Sound{}
02 October 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment