将as3加载到as2仅在_root上工作

时间:2012-03-26 11:00:57

标签: actionscript-3 migration actionscript-2 localconnection

我在as2中做了一个简单的测试示例。它包含两个带有以下处理程序的按钮。

_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?)。

1 个答案:

答案 0 :(得分:0)

试试这个:

on as2:

test.testmc.loadMovie("AS3.swf");

或者你想要as3播放器:

this.loadMovie("AS3.swf");

您的第二个代码是调用test.testmc.test.testmc,因为它已经放在“testmc”中,因此您不需要使用完整路径引用它。建议你使用相对路径来做这样的事情。

因此,在mc testmc内,你只需要this.loadmovie而不是搜索test.testmc INSIDE testmc。

希望这就是你要找的东西。