2012-03-11 50 views
1

基本上这就是我所处的情况,我有一个AS2文件,它使用loadMovieNum(“file.swf”,0)命令可以正常工作,链接并打开一个AS3文件。在打开的AS3文件中,我有一个使用加载器类链接回AS2文件的按钮,并删除子文件以将原始AS2文件重新加载到屏幕上,但似乎没有问题。Actionscript 2和Actionscript 3一起工作可能吗?

但是,我现在唯一的问题是,现在我的原始AS2文件中的某些功能在重新加载时似乎不能100%正常工作,因为它曾经在首次加载时出现在特定的某些按钮中。

我想在这里实现的东西太复杂甚至不可能做,我会更好,只是重写我在AS3的整个项目? (有什么我真的不希望在此刻做的,由于时间限制)

非常感谢,

回答

2

一般来说,混合ActionScript 2和3是不是做一件好事,尤其是与AS2作为“父”。由于您似乎从AS2拨打电话到AS3,并回到AS2,我猜想它只是打破了。所以是的,解决方案是至少在AS3中创建父级脚本。尽量分开你的项目,也许你可以避免重写所有的东西。

  • 写入ActionScript 1.0或2.0 SWF文件无法加载ActionScript 3.0编写的SWF文件。这意味着在Flash 8或Flex Builder 1.5或更早版本中创作的SWF文件无法加载ActionScript 3.0 SWF文件。

    此规则的唯一例外是,只要ActionScript 2.0 SWF文件以前没有将任何内容加载到其级别中,ActionScript 2.0 SWF文件就可以用ActionScript 3.0 SWF文件替换它自己。 ActionScript 2.0 SWF文件可以通过调用loadMovieNum()来完成此操作,将0的值传递给level参数。

  • 通常,如果要用ActionScript 3.0编写的SWF文件一起工作,则必须迁移用ActionScript 1.0或2.0编写的SWF文件。例如,假设您使用ActionScript 2.0创建了媒体播放器。媒体播放器加载也使用ActionScript 2.0创建的各种内容。您不能在ActionScript 3.0中创建新内容并将其加载到媒体播放器中。您必须将视频播放器迁移到ActionScript 3.0。

    但是,如果您在ActionScript 3.0中创建媒体播放器,该媒体播放器可以执行简单加载的ActionScript 2.0内容。

source