以前只知道外部加载文件图片用load,今天发现一个新东西,记录下来以备查阅。外部加载可以用load和Embed方法,他们区别在于Embed表示编译的时候加载而load表示执行时加载。

[Embed(source="xxxx")]在as文件中怎样使用:

package {
import flash.display.Sprite;
import flash.display.Bitmap;
public class EmbedAsset extends Sprite {
[Embed(source="picture.jpg")]
private var Image:Class;
public function EmbedAsset() {
init();
}
private function init():void {
var img:Bitmap = new Image();
addChild(img);
}
}
}


AS3.0中使用TextField显示Embed的图片:


package {    
import flash.display.Sprite;
import flash.text.*;
public class EmbedImageForTextField extends Sprite
{
[Embed(source="image.png")]
private var yellow:Class;
public function EmbedImageForTextField()
{
var t:TextField = new TextField();
t.htmlText = "这里显示一张库里的图<img src='EmbedImageForTextField_yellow'/>";
addChild(t);
}
}
}

使用Embed嵌入图片文件后..


我们一样可以使用img标签的src属性来指定嵌入的图片资源..


不过在指定的时候..需要以"所在类名_变量名"的形式来指定..


上例中:


所在类名为EmbedImageForTextField


变量名为yellow


那指定的时候就需要写为"EmbedImageForTextField_yellow";


嵌入xml文件:


[Embed("config.xml", mimeType="application/octet-stream")]
private var config:Class;

var myXML:XML=new XML(new config);


嵌入字体文件


嵌入外部字体
[Embed(source="fonts/FOLKS-BOLD.TTF", fontName="FontFolksBold", embedAsCFF="false")]
public static var MyFont:Class;

var tf:TextField = new TextField();
tf.defaultTextFormat = new TextFormat("FontFolksBold", 30, 0);
tf.embedFonts = true;
tf.autoSize = "left";
tf.text = "Hello World!";
addChild(tf);
嵌入系统字体
[Embed(systemFont="STHUPO", fontName="琥珀", mimeType="application/x-font-truetype")]