今天发现Flash CS4的一个新特性:支持Flex元数据标签,这就解决了以前版本的Flash AS工程与Flex AS工程不能兼容的问题。
大家都知道,在如果AS3代码中有SWF、Embed之类的元数据标签,用Flex SDK来编译是没问题的,但在Flash编译将会被忽略。前版本的Flash是通过属性面板来设置SWF属性,通过链接库中的资源,这就意味着我们在移植时不得不作改动。
在Flash CS4中已经直接支持SWF元数据标签了,看下面代码:
package { import flash.display.*; [SWF(backgroundColor='0xEEEEEE',width='640',height='480',frameRate='24')] public class Metadata extends Sprite { [Embed(source='1.gif')] private var Head:Class; public function Metadata() { var obj:DisplayObject = new Head(); addChild(obj); obj.x = 100; obj.y = 100; } } }
上述代码我们使用了Embed标签,由于该标签需要Flex SDK支持,因此如果你的Flash CS4没有设置Flex SDK路径,将编辑不通过,系统将弹出一个对话框让我们配置。如下图:
点击update library path按钮后再次测试影片,就能编译成功了。
因此,在Flash CS4使用Flex SDK来编译影片,许多元数据标签都能得到支持,除了上面已经提到的,还有IconFile、ResourceBundle、Style等元数据标签,大家可以自行测试一下。