Flex中嵌入swf文件

嵌入 SWF 文件与嵌入图像几乎是相同的。 差别在于您可以将嵌入的 SWF 文件的实例当作 MovieClip 类的实例处理。 (它们实际上是 MovieClipAsset 类的子类, MovieClipAsset 类是 MovieClip 类的子类。)

注意: 您无法直接访问嵌入的 SWF 文件的属性或方法。 但是, 您可以使用 LocalConnection 以允许它们进行通信。

例子1: 

  1. <? xml   version = "1.0"   encoding = "utf-8" ?>   
  2. < mx:Application    
  3.     xmlns:mx = "http://www.adobe.com/2006/mxml"    
  4.      viewSourceURL = "src/EmbeddingSwfFiles/index.html"   
  5.     layout = "horizontal"   width = "290"   height = "290"   
  6.     horizontalAlign = "center"   verticalAlign = "middle"   
  7.  >   
  8.   
  9.     < mx:Script >   
  10.     <![CDATA[  
  11.             [Embed(source="assets/hourglass.swf")]  
  12.  
  13.             [Bindable]  
  14.             public var Hourglass:Class;              
  15.         ]]>   
  16.     </ mx:Script >   
  17.   
  18.     < mx:Image   id = "hourglass"   source = "{Hourglass}" />   
  19. </ mx:Application >   

 

嵌入 SWF 库资源

您可以在应用程序中嵌入来自现有 SWF 库中的特定符号。 Flash 定义三种类型的符号: Button、MovieClip 和 Graphic。 您可以在 Flex 应用程序中嵌入 Button 和 MovieClip 符号, 但您不能嵌入 Graphic 符号, 因为无法为 ActionScript 导出 Graphic 符号。

此示例使用 [Embed] 元数据标签的 source 属性来指定包含您的库的 SWF 文件, 并使用 [Embed] 元数据标签的 symbol 属性来指定您要在该库中嵌入的符号的链接 ID。 

例子2: 

  1. <? xml   version = "1.0"   encoding = "utf-8" ?>   
  2. < mx:Application    
  3.     xmlns:mx = "http://www.adobe.com/2006/mxml"    
  4.     viewSourceURL = "src/EmbeddingSwfLibraryAssets/index.html"   
  5.     layout = "horizontal"   width = "450"   height = "240"   
  6.     horizontalAlign = "center"   verticalAlign = "bottom"        
  7.   
  8. >   
  9.     
  10.     < mx:Script >   
  11.     <![CDATA[  
  12.             [Embed(source="assets/library.swf", symbol="BadApple")]  
  13.  
  14.             [Bindable]  
  15.             public var BadApple:Class;  
  16.               
  17.             [Embed(source="assets/library.swf", symbol="Pumpkin")]  
  18.  
  19.             [Bindable]  
  20.             public var Pumpkin:Class;  
  21.                           
  22.         ]]>   
  23.     </ mx:Script >   
  24.   
  25.     < mx:Image   id = "badApple"   source = "{BadApple}"   width = "150"   height = "151.8" />   
  26.   
  27.     < mx:Image   id = "pumpkin"   source = "{Pumpkin}"   width = "150"   height = "131.7" />   
  28.       
  29.   
  30. </ mx:Application >   

例子3:
下面的例子使用3个不同的标识符加载“assets/icons.swf”文件。每个资源都被赋予了不用的变量。这样即使使用同一个SWF文件,它们也能很容易的引用独立的资源。 

  1. <? xml   version = "1.0"   encoding = "utf-8" ?>   
  2. <!-- http://blog.flexexamples.com/2007/07/25/embedding-assets-from-swf-files/ -->   
  3. < mx:Application   xmlns:mx = "http://www.adobe.com/2006/mxml"   layout = "vertical"   verticalAlign ="middle"   backgroundColor = "white" >   
  4.   
  5.     < mx:Script >   
  6.         <![CDATA[  
  7.             [Bindable]  
  8.             [Embed('assets/icons.swf', symbol='bulletCheck')]  
  9.             private static var BULLET_CHECK:Class;  
  10.  
  11.             [Bindable]  
  12.             [Embed('assets/icons.swf', symbol='bulletCritical')]  
  13.             private static var BULLET_CRITICAL:Class;  
  14.  
  15.             [Bindable]  
  16.             [Embed('assets/icons.swf', symbol='bulletWarning')]  
  17.             private static var BULLET_WARNING:Class;  
  18.         ]]>   
  19.     </ mx:Script >   
  20.   
  21.     < mx:Button   id = "checkBtn"   label = "Check"   icon = "{BULLET_CHECK}"   />   
  22.     < mx:Button   id = "warningBtn"   label = "Warning"   icon = "{BULLET_WARNING}"   />   
  23.     < mx:Button   id = "critcalBtn"   label = "Critical"   icon = "{BULLET_CRITICAL}"   />   
  24.   
  25. </ mx:Application >   

你也可以重构一下代码,使它看起来跟优雅。把Embed标签和各种变量移到一个独立的ActionScript文件中,就像下面这样。

Images.as:

  1. package   
  2. {  
  3.     public   class  Images  
  4.     {  
  5.         [Embed('assets/icons.swf' , symbol= 'bulletCheck' )]  
  6.         public   static   const  BULLET_CHECK:Class;  
  7.   
  8.         [Embed('assets/icons.swf' , symbol= 'bulletCritical' )]  
  9.         public   static   const  BULLET_CRITICAL:Class;  
  10.   
  11.         [Embed('assets/icons.swf' , symbol= 'bulletWarning' )]  
  12.         public   static   const  BULLET_WARNING:Class;  
  13.     }  
  14. }  
  1. <? xml   version = "1.0"   encoding = "utf-8" ?>   
  2. <!-- http://blog.flexexamples.com/2007/07/25/embedding-assets-from-swf-files/ -->   
  3. < mx:Application   xmlns:mx = "http://www.adobe.com/2006/mxml"   layout = "vertical"   verticalAlign ="middle"   backgroundColor = "white" >   
  4.   
  5.     < mx:Button   id = "checkBtn"   label = "Check"   icon = "{Images.BULLET_CHECK}"   />   
  6.     < mx:Button   id = "warningBtn"   label = "Warning"   icon = "{Images.BULLET_WARNING}"   />   
  7.     < mx:Button   id = "critcalBtn"   label = "Critical"   icon = "{Images.BULLET_CRITICAL}"   />   
  8.   
  9. </ mx:Application >   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值