我在as2中做了一个简单的测试示例。这包含两个按钮和以下处理程序。将as3加载到as2只能在_root上工作
_root:
on (release)
{
this.loadMovie("AS3.swf");
}
_root.test.testmc:
on (release)
{
test.testmc.loadMovie("AS3.swf");
}
的AS3.swf是(使用YouTube AS3 API)视频播放器。如果我把它加载到_root它的作品,但如果我想将它加载到任何其他地方它不。我从Adobe搜索并发现:
“以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 3.0 SWF文件替换自身,只要ActionScript 2.0 SWF文件先前未将任何内容加载到其任何文件中ActionScript 2.0 SWF文件可以通过调用loadMovieNum(),将值0传递给level参数来完成此操作。“
由于上述“例外规则”,我的代码的“_root部分”是否工作?我是新来的闪光灯(是啊,你可以问为什么我开始与as2,不幸的是不是我的选择...),我不知道我的想法是否正确。此外,如果有任何形式的解决方法(除了重写AS3中的所有内容),请告诉我(可能使用localconnection?)。在AS2的根
:
我相信你是正确的,'_root.loadMovie()'和'loadMovieNum()'等价。如果您不想将播放器swf加载到根目录下,那么您可能不得不考虑将应用程序移植到AS3或使用YouTube的AS2 API重写视频播放器:https://developers.google.com/ youtube/flash_api_reference_as2 – shanethehat 2012-03-26 12:55:52
感谢您的答案,不幸的是,YouTube的as2 api将继续运行,直到10月14日,我猜那之后它不会工作。我想我会试图说服老板忘记AS2并投资将所有东西移植到AS3。 – Alex 2012-03-26 13:14:11