我已使用类定义上方的语法将 SWF 嵌入到类中:

[Embed (source='/../assets/MyMovieClips.swf', symbol='SpecialMovieClip')]
public class SpecialMovieClip extends MovieClip

MovieClip 资源似乎与我的类关联良好,并与其一起实例化,并且可见,但是:

  • 我无法访问该剪辑中放置在舞台上的实例。
  • 时间线脚本似乎不起作用。

这是使用 Flex SDK 在编译时嵌入 SWF 文件的缺点吗?那么,如果我想要时间轴脚本或实例位于舞台上,也许我应该返回使用 Flash IDE 进行编译?

有帮助吗?

解决方案

  1. 如果您使用 [Embed ] 标签嵌入,则所有脚本都将从您的符号中删除。但是您可以使用 MovieClip.addFrameScript() 将脚本添加到帧中:

    公共函数 SpecialMovieClip(){

    addFrameScript(4,myfunc)

    }

    私有函数 myfunc(){

    停止()

    }

  2. 我认为你只能使用 movieClip.GetChildAt() 访问 movieClip 内的符号

其他提示

来自 文档: :(向下滚动到“嵌入 SWF 符号”)

如果 SWF 文件包含任何 ActionScript 代码,Flex 会在编译期间打印警告,然后从嵌入符号中删除 ActionScript。这意味着您只能嵌入符号本身。

根据您想要执行的操作,我认为您最好嵌入整个 SWF,或者在运行时加载内容。

顺便说一句,关于无法访问嵌入符号中的内容,您是否确定目标 SWF 是 AS3?如果您要嵌入(或加载)AS2 内容,则仅允许通过 LocalConnection 实现互操作性。我链接的文档页面上也介绍了这一点。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top