嵌入 SWF 文件与嵌入图像几乎是相同的。 差别在于您可以将嵌入的 SWF 文件的实例当作 MovieClip 类的实例处理。 (它们实际上是 MovieClipAsset 类的子类,MovieClipAsset 类是 MovieClip 类的子类。)
注意: 您无法直接访问嵌入的 SWF 文件的属性或方法。 但是,您可以使用 LocalConnection 以允许它们进行通信。
例子1:?
-
<??xml???version?=?"1.0"???encoding?=?"utf-8"??>???
-
<?mx:Application????
- ????xmlns:mx?=?"http://www.adobe.com/2006/mxml"????
- ?????viewSourceURL?=?"src/EmbeddingSwfFiles/index.html"???
- ????layout?=?"horizontal"???width?=?"290"???height?=?"290"???
- ????horizontalAlign?=?"center"???verticalAlign?=?"middle"???
- ?>???
- ??
- ????mx:Script?>???
- ????<![CDATA[??
-
????????????[Embed(source="assets/hourglass.swf")]??
- ?
-
????????????[Bindable]??
-
????????????public?var?Hourglass:Class;??????????????
-
????????]]>???
- ????</?>???
- ??
- ????mx:Image???id?=?"hourglass"???source?=?"{Hourglass}"?/>???
-
mx:Application?>???
?
嵌入 SWF 库资源
您可以在应用程序中嵌入来自现有 SWF 库中的特定符号。 Flash 定义三种类型的符号: Button、MovieClip 和 Graphic。 您可以在 Flex 应用程序中嵌入 Button 和 MovieClip 符号,但您不能嵌入 Graphic 符号,因为无法为 ActionScript 导出 Graphic 符号。
此示例使用 [Embed] 元数据标签的 source 属性来指定包含您的库的 SWF 文件,并使用 [Embed] 元数据标签的 symbol 属性来指定您要在该库中嵌入的符号的链接 ID。?
例子2:?
mx:Application????
????xmlns:mx?=?"http://www.adobe.com/2006/mxml"????
????viewSourceURL?=?"src/EmbeddingSwfLibraryAssets/index.html"???
????layout?=?"horizontal"???width?=?"450"???height?=?"240"???
????horizontalAlign?=?"center"???verticalAlign?=?"bottom"????????
??
>???
????
????>???
????<![CDATA[??
????????????[Embed(source="assets/library.swf",?symbol="BadApple")]??
?
????????????[Bindable]??
????????????public?var?BadApple:Class;??
??????????????
??
?
????????????public?var?Pumpkin:Class;??
??????????????????????????
????????]]>???
????mx:Image???id?=?"badApple"???source?=?"{BadApple}"???width?=?"150"???height?=?"151.8"?/>???
??
????mx:Image???id?=?"pumpkin"???source?=?"{Pumpkin}"???width?=?"150"???height?=?"131.7"?/>???
??????
??
例子3:
下面的例子使用3个不同的标识符加载“assets/icons.swf”文件。每个资源都被赋予了不用的变量。这样即使使用同一个SWF文件,它们也能很容易的引用独立的资源。?
?>???
???
mx:Application???xmlns:mx?=?"http://www.adobe.com/2006/mxml"???layout?=?"vertical"???verticalAlign?="middle"???backgroundColor?=?"white"?>???
????????????????????[Embed('assets/icons.swf',?symbol='bulletCheck')]??
????????????private?static?var?BULLET_CHECK:Class;??
?
????????????private?static?var?BULLET_CRITICAL:Class;??
?
????????????private?static?var?BULLET_WARNING:Class;??
mx:Button???id?=?"checkBtn"???label?=?"Check"???icon?=?"{BULLET_CHECK}"???/>???
????mx:Button???id?=?"warningBtn"???label?=?"Warning"???icon?=?"{BULLET_WARNING}"???/>???
????mx:Button???id?=?"critcalBtn"???label?=?"Critical"???icon?=?"{BULLET_CRITICAL}"???/>???
??
你也可以重构一下代码,使它看起来跟优雅。把Embed标签和各种变量移到一个独立的ActionScript文件中,就像下面这样。
Images.as:
-
package???
- {??
- ????public???class??Images??
- ????{??
- ????????[Embed('assets/icons.swf'?,?symbol=?'bulletCheck'?)]??
- ????????public???static???const??BULLET_CHECK:Class;??
- ??
- ????????[Embed('assets/icons.swf'?,?symbol=?'bulletCritical'?)]??
- ????????public???static???const??BULLET_CRITICAL:Class;??
- ??
- ????????[Embed('assets/icons.swf'?,?symbol=?'bulletWarning'?)]??
- ????????public???static???const??BULLET_WARNING:Class;??
- ????}??
- }??
mx:Button???id?=?"checkBtn"???label?=?"Check"???icon?=?"{Images.BULLET_CHECK}"???mx:Button???id?=?"warningBtn"???label?=?"Warning"???icon?=?"{Images.BULLET_WARNING}"???mx:Button???id?=?"critcalBtn"???label?=?"Critical"???icon?=?"{Images.BULLET_CRITICAL}"???>???
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!