代码之家  ›  专栏  ›  技术社区  ›  Pup

我可以在嵌入的SWF资产上使用带有flex sdk的时间轴脚本吗?

  •  2
  • Pup  · 技术社区  · 15 年前

    我在类定义之上使用以下语法将SWF嵌入到类中:

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

    movieclip资产似乎与我的类相关联,并与它一起实例化,并且是可见的,但是:

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

    这是在编译时用flex sdk嵌入swf文件的缺点吗? 所以,如果我想要时间线脚本或者实例放在舞台上,也许我应该回到用flash ide编译的过程中去?

    2 回复  |  直到 15 年前
        1
  •  2
  •   thtzhthz    15 年前
    1. 如果使用[嵌入]标记嵌入,所有脚本都将从符号中删除。 但可以使用movieclip.addframescript()将脚本添加到帧中:

      公共函数SpecialMovieClip()。{

      addframescript(4,myfunc)

      }

      私有函数myfunc()。{

      停止()

      }

    2. 我想你只能用movieclip.getchildat()访问movieclip中的符号。

        2
  •  1
  •   fenomas    15 年前

    docs :(向下滚动至“嵌入SWF符号”)

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

    根据你想做什么,我认为你最好嵌入整个SWF,或者在运行时加载东西。

    顺便说一句,关于不能访问嵌入符号内的内容,您确定目标SWF是AS3吗?如果要嵌入(或加载)AS2内容,那么只允许通过LocalConnection进行互操作。这也在我链接的文档页面中介绍。

    推荐文章