as3.0使用【Embed】标签插入外部资源
嵌入GIF,PNG,JPEG,MP3文件
package
{
y.*;
publicclassGIFEmbedextendsSprite
{
[Embed(source="../asts/")]
privatevartheClass:Class;
publicfunctionGIFEmbed()
{
vardisplayObj:DisplayObject=newtheClass();
addChild(displayObj);
}
}
}
代码中的高亮行包括了源属性,指示了嵌入的名称和资源的路径。你可以使用绝
对路径或者文档文件的相对路径来包含嵌入的描述。在这个示例中,这个名称为
的ActionScript类指示了定位到命名为asts的文件夹中,这个
文件夹包含了的图片文件。
注意:[Embed]元数据标签可以有另外一个可选属性,mimeType,它允许你指
定链接资源的MIME类型。我将在后面再具体的讨论这个属性。
ActionScript代码的顺序非常重要。你必须在声明变量前添加[Embed]元数据标
签,而且这个变量的类型会是Class。在下面的代码片段中,[Embed]元数据标
签中一个成为theClass,类型声明为Class的私有变量前使用:
[Embed(source="../asts/")]
privatevartheClass:Class;
在名称为GIFEmbed的函数内部,一个新的类型为DisplayObject命名为
displayObj的变量被用来实例化theClass为一个新的DisplayObject。下一行使
用addChild方法将displayObj添加到了显示列表当中,并在舞台上渲染:
vardisplayObj:DisplayObject=newtheClass();
addChild(displayObj);
参考示例文件,查看文件夹结构,确认类文件和名称为
的GIP图片的路径(放在asts目录中)。
[Embed]元数据标签带有两个属性:Source:(必选的)使用这个属性来确认嵌入
资源的名称和路径。如果你嵌入了一个元件,你可以用元件的关键词确定元件认
嵌入到SWF中的名字。mimeType:(可选的)使用这个属性来确定嵌入资源的
MIME类型。如果这个属性没有设置,Flash会在源属性中根据导入资源文件的
扩展名载入合适的类型。
FlashCS4专业版支持与Flex一样的一系列MIME类型
在帧脚本中使用[Embed]标签
同前面列出的过程一样,元数据也可以应用到帧脚本。在这段中,我会描述怎么
利用[Embed]标签来嵌入元数据到帧脚本中。如果你跟着示例文件,请参阅
1、通过选择"文件">"新建">"Flash文件(ActionScript3.0)"菜单来创建一个新的
FlashCS4文件;
2、将这个Flash文件保存为。
3、选择图层1的第一帧并打开动作面板("窗口">"动作")。
4、拷贝如下代码,并粘贴到脚本窗口:
[Embed(source="../asts/")]
vartheClass:Class;
vardisplayObject:DisplayObject=newtheClass();
addChild(displayObject);
5、重复前面一个段落的10-13步测试SWF文件,并更新FlexSDK目录库路径
来添加文件。
从SWF文件中嵌入一个元件
package
{
y.*;
vent;
gle;
publicclassSWFEmbedextendsMovieClip
{
publicvardisplayObj:DisplayObject;
[Embed(source="",symbol="Slice9")]
vartheClass:Class;
publicfunctionSWFEmbed()
{
displayObj=newtheClass();
addChild(displayObj);
displayObj.x=200;
displayObj.y=220;
}
}
}
在这段代码中,[Embed]元数据标签使用了source参数来确认将被嵌入的SWF
文件的名称和路径。symbol参数来确认特殊元件的名称,这个元件是从source
参数关联的SWF文件中嵌入的。
使用[Embed]标签嵌入字体
除了嵌入图片文件,SWFs,还有SWFs中的元件以外,[Embed]元数据标签还
可以嵌入OpenType和TrueType字体到Flash文件中。在这个段落中,我将演
示怎么使用[Embed]元数据标签在FlashCS4中嵌入字体。这篇文章将定你已经
安装了ArialBold字体在你的系统中。如果你没有这个字体,你可以从
或者类似网站上购买它。
注意:[Embed]元数据标签仅仅支持类和成员变量,如果你尝试在函数前使用
[Embed]标签,如下的编译错误将会显示:"Embedisonlysupportedonclass
andmembervariables."(Embed仅仅支持类和成员变量)
如果你是跟随教程学习,请参阅示例文件中TrueType目录。
1、选择"文件">"新建">"ActionScript文件",创建一个新的ActionScript文件。
2、保存文件为。
3、拷贝并粘贴如下代码到脚本窗口中:
package
{
.*;
lip;
publicclassFontClasxtendsMovieClip
{
[Embed(source="",fontName="myFont",
fontWeight="bold",advancedAntiAliasing="true",
mimeType="application/x-font")]
privatevartheClass:Class;
publicfunctionFontClass()
{
vart:TextField=newTextField();
onts=true;
vartextFormat:TextFormat=newTextFormat();
="30";
="myFont";
="[Embed]metadatarocks!!!";
=500;
tFormat(textFormat);
addChild(t);
}
}
}
上面代码中的高亮部分,[Embed]元数据标签中使用到如下的参数来嵌入一个
Arialbold字体:
Source:这个参数指出了font文件的位置。如果愿意,你可以使用systemFont
参数确认名称而不是source来嵌入系统字体。fontName:这个参数指明了嵌
入字体的名称,字体的名称是一个唯一标识,所以你可以通过名称来调用字体。
mimeType:这个参数描述了嵌入元数据的MIME类型。因为你在这个例子中嵌
入了一种字体,你可以设置MIME类型为"application/x-font"。fontWeight:这
个参数表明了字体的粗细,如粗体或者正常。
注意:如果字体有粗细,并且你没有在[Embed]元数据标签中包含fontWeight
参数,当测试SWF文件是,你会看到如下编译错误:
Exceptionduringtranscoding:Fontforalias'myFont'withplainweightand
stylewasnotfoundat...(意外的转换:带有粗细和样式的别名为'myFont'的字体
没有被找到在...)
随着嵌入字体的路径(如图11)。
使用嵌入的XML文件
在这篇文章的前面段落中,我讲述了使用[Embed]元数据标签嵌入图形文件,
SWF文件,SWF文件中元件,还有字体等到SWF中。所有这些可能性都是非
常有用的,不过还有另外一种类型的文件也可以采用[Embed]元数据标签嵌入
到SWF中:XML文件。
我保留最好的到最后,这是因为这个功能对于将外部数据导入到SWF中非常用
用--而且很直接地就可以完成。根据嵌入的XML数据,你可以做一些有趣的
事情,为将来的工程记住这个是一个极好的提醒。
下面的示例提供了使用[Embed]元数据标签嵌入一个XML文件的一个说明。
如果你跟随教程学习,请参阅示例文件的XML目录。
1、选择"文件">"新建">"Flash文件(ActionScript3.0)"创建文件,并保存文件为
。
2、选择"文件">"新建">"ActionScript文件"创建文件,并保存文件为
。
3、当被激活,拷贝并粘贴如下如下代码到脚本窗口:
package
{
y.*;
ray;
publicclassXMLLoaderextendsSprite
{
[Embed(source="",mimeType=
"application/octet-stream")]
privatevartheClass:Class;
publicfunctionXMLLoader()
{
varxmlObj:Object=newtheClass();
trace(xmlObj);
}
}
}
注意:当嵌入XML数据时,你必须将mimeType参数设置为
"application/octet-stream"。Flash不能通过XML文件的扩展名检测正确的
MIME类型,所以无论什么时候你嵌入XML数据时都要设置mimeType参数。
4、将代码粘贴到脚本窗口后,确保保存文件。
本文发布于:2022-12-29 00:40:10,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/50052.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |