我在类定义之上使用以下语法将SWF嵌入到类中:
[Embed (source='/../assets/MyMovieClips.swf', symbol='SpecialMovieClip')] public class SpecialMovieClip extends MovieClip
movieclip资产似乎与我的类相关联,并与它一起实例化,并且是可见的,但是:
这是在编译时用flex sdk嵌入swf文件的缺点吗? 所以,如果我想要时间线脚本或者实例放在舞台上,也许我应该回到用flash ide编译的过程中去?
如果使用[嵌入]标记嵌入,所有脚本都将从符号中删除。 但可以使用movieclip.addframescript()将脚本添加到帧中:
公共函数SpecialMovieClip()。{
addframescript(4,myfunc)
}
私有函数myfunc()。{
停止()
我想你只能用movieclip.getchildat()访问movieclip中的符号。
从 docs :(向下滚动至“嵌入SWF符号”)
如果swf文件包含任何actionscript代码,flex将在编译期间打印警告,然后从嵌入符号中删除actionscript。这意味着您只能嵌入符号本身。
根据你想做什么,我认为你最好嵌入整个SWF,或者在运行时加载东西。
顺便说一句,关于不能访问嵌入符号内的内容,您确定目标SWF是AS3吗?如果要嵌入(或加载)AS2内容,那么只允许通过LocalConnection进行互操作。这也在我链接的文档页面中介绍。