as3.0 [Embed]标签嵌入外部资源




空暇时间,总结一下[Embed]标签的用途,好记性不如烂笔头,记录下来,为方便查找。




1、[Embed]嵌入资源


ActionScript代码的顺序很重要。你必须在声明变量前加入[Embed]元数据标签,并且这个变量的类型会是Class。




package


{


import flash.display.*;


public class GIFEmbed extends Sprite


{


[Embed(source = "../assets/talapetra.gif")]


private var theClass:Class;


public function GIFEmbed ()


{


var displayObj:DisplayObject = new theClass();


addChild (displayObj);


}


}


}






2、[Embed]从SWF文件里嵌入一个元件


symbol參数来确认特殊元件的名称,这个元件是从source參数关联的SWF文件里嵌入的。


package


{


import flash.display.*;


import flash.events.MouseEvent;


import flash.geom.Rectangle;


public class SWFEmbed extends MovieClip


{


public var displayObj:DisplayObject;


[Embed(source="Movie.swf", symbol="Slice9")]


var theClass:Class;


public function SWFEmbed()


{


displayObj = new theClass();


addChild(displayObj);


displayObj.x = 200;


displayObj.y = 220;


}


}


}




3、[Embed]标签嵌入字体


能够嵌入OpenType和TrueType字体


fontName: 这个參数指明了嵌入字体的名称,字体的名称是一个唯一标识,所以你能够通过名称来调用字体。


mimeType: 这个參数描写叙述了嵌入元数据的MIME类型。


嵌入一种字体设置MIME类型为"application/x-font"


package


{


import flash.text.*;


import flash.display.MovieClip;


public class FontClass extends MovieClip


{


[Embed(source="Arial Bold.ttf", fontName="myFont", fontWeight="bold", advancedAntiAliasing="true", mimeType="application/x-font")]


private var theClass:Class;


public function FontClass ()


{


var t:TextField=new TextField();


t.embedFonts = true;


var textFormat:TextFormat=new  TextFormat();


textFormat.size = "30";


textFormat.font = "myFont";


t.text = "[Embed] metadata rocks!!!";


t.width = 500;


t.setTextFormat (textFormat);


addChild (t);


}


}


}




4、[Embed]嵌入的XML文件


嵌入XML数据时。你必须将mimeType參数设置为"application/octet-stream"。


package


{


import flash.display.*;


import flash.utils.ByteArray;


public class XMLLoader extends Sprite


{


[Embed(source = "training.xml",mimeType = "application/octet-stream")]


private var theClass:Class;


public function XMLLoader ()


{


var xmlObj:Object = new theClass();


trace(xmlObj);


}


}


}