我可以通过 Flex SDK 对嵌入式 SWF 资源使用时间线脚本吗?
-
05-07-2019 - |
题
我已使用类定义上方的语法将 SWF 嵌入到类中:
[Embed (source='/../assets/MyMovieClips.swf', symbol='SpecialMovieClip')]
public class SpecialMovieClip extends MovieClip
MovieClip 资源似乎与我的类关联良好,并与其一起实例化,并且可见,但是:
- 我无法访问该剪辑中放置在舞台上的实例。
- 时间线脚本似乎不起作用。
这是使用 Flex SDK 在编译时嵌入 SWF 文件的缺点吗?那么,如果我想要时间轴脚本或实例位于舞台上,也许我应该返回使用 Flash IDE 进行编译?
解决方案
如果您使用 [Embed ] 标签嵌入,则所有脚本都将从您的符号中删除。但是您可以使用 MovieClip.addFrameScript() 将脚本添加到帧中:
公共函数 SpecialMovieClip(){
addFrameScript(4,myfunc)
}
私有函数 myfunc(){
停止()
}
我认为你只能使用 movieClip.GetChildAt() 访问 movieClip 内的符号
其他提示
来自 文档: :(向下滚动到“嵌入 SWF 符号”)
如果 SWF 文件包含任何 ActionScript 代码,Flex 会在编译期间打印警告,然后从嵌入符号中删除 ActionScript。这意味着您只能嵌入符号本身。
根据您想要执行的操作,我认为您最好嵌入整个 SWF,或者在运行时加载内容。
顺便说一句,关于无法访问嵌入符号中的内容,您是否确定目标 SWF 是 AS3?如果您要嵌入(或加载)AS2 内容,则仅允许通过 LocalConnection 实现互操作性。我链接的文档页面上也介绍了这一点。
不隶属于 StackOverflow