您的位置:首页 > 其它

[Flash&Flex] AS3.0 如何利用[Embed(source="...")]嵌入资源

2016-01-07 12:58 513 查看
在flex和flashIDE中我们可以[Embed(source="...")]嵌入图片和swf等资源,但两者之间的嵌入方式又有所区别。

flex示例:

[Embed(source="../assets/images/embed/bg_top_v.png")]
public var bg_top_v:Class;


flash示例:

[Embed(source="/../assets/images/embed/bg_top_v.png")]
public var bg_top_v:Class;


"../" 表示从发布目录的上级目录开始查找,如果资源在发布目录的同级目录则不需要此字符串。

注意二者的区别,另外在flash IDE中还必须要设置flex SDK才能用,因为[Embed(source="...")]方法本身属于Flex SDK的功能。




另外附上嵌入其他类型数据的方法:

嵌入XML:

[Embed(source = "/../assets/app/weather/config/city.xml", mimeType = "application/octet-stream")]
public var xml:Class;


当嵌入XML数据时,你必须将mimeType参数设置为"application/octet-stream"。 Flash不能通过XML文件的扩展名检测正确的MIME类型,所以无论什么时候你嵌入XML数据时都要设置mimeType参数。

嵌入字体:

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


当嵌入字体数据时,Source: 这个参数指出了font文件的位置。如果愿意,你可以使用systemFont参数确认名称而不是source来嵌入系统字体。 fontName: 这个参数指明了嵌入字体的名称,字体的名称是一个唯一标识,所以你可以通过名称来调用字体。 mimeType: 这个参数描述了嵌入元数据的MIME类型。因为你在这个例子中嵌入了一种字体,你可以设置MIME类型为"application/x-font"。 fontWeight: 这个参数表明了字体的粗细,如粗体或者正常。

注意:如果字体有粗细,并且你没有在[Embed]元数据标签中包含fontWeight参数,当测试SWF文件是,你会看到如下编译错误:

Exception during transcoding: Font for alias 'myFont' with plain weight and style was not found at... (意外的转换:带有粗细和样式的别名为'myFont'的字体没有被找到在...)

嵌入swf:

[Embed(source = "/../assets/app/weather/images/embed/test.swf")]
public var swf:Class;


嵌入元件:

[Embed(source = "/../assets/app/weather/images/embed/test.swf",symbol="com.symbol.UpButton")]
public var symbol:Class;


如果没有symbol参数,那么source参数指定将被嵌入的SWF文件的名称和路径。如果存在symbol参数,那么symbol指定source参数关联的SWF文件中元件的名称,并嵌入这个元件,而非这个SWF,symbol参数必须是SWF中链接的类名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: