Actionscript 3 AS3包装器访问AS1变量

Actionscript 3 AS3包装器访问AS1变量,actionscript-3,wrapper,flash-cs3,loader,Actionscript 3,Wrapper,Flash Cs3,Loader,好的,我有一个flashcs3(+AS3)程序,它正在加载另一个Flash程序(本例中称为“pacman_main.swf”)。我已经确定这是一个相当古老的SWF,因为它是在Flash 5和AS1中制作的(yippee!) 我希望父SWF(也称为包装器)能够访问子SWFG(也称为“pacman_main.SWF”)的变量,特别是分数。这样我就可以把分数提交给第三方PHP/mySQL数据库了 function checkScore() { // Get the score and subm

好的,我有一个flashcs3(+AS3)程序,它正在加载另一个Flash程序(本例中称为“pacman_main.swf”)。我已经确定这是一个相当古老的SWF,因为它是在Flash 5和AS1中制作的(yippee!)

我希望父SWF(也称为包装器)能够访问子SWFG(也称为“pacman_main.SWF”)的变量,特别是分数。这样我就可以把分数提交给第三方PHP/mySQL数据库了

function checkScore() {
    // Get the score and submit it
}

submitScore.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
    checkScore();
}

var loader:Loader = new Loader();
loader.load(new URLRequest("pacman_main.swf")); 
addChildAt(loader, 0); 
我知道分数的变量名,在构建包装器后使用Debug>List变量。在游戏中获得18个pac点数后,分数是一个列为“变量_level0.instance5.instance6.score=180”的变量。我如何在我的“checkScore”函数中访问它


谢谢

最新的flash播放器中有两个虚拟机,分别是用于as3的AVM2和用于as2/as1的AVM1。因此,当您将as1/as2 swf加载到闪存中时,它属于AVM1Movie类型,将由AVM1运行。不幸的是,AVM2几乎无法访问AVM1上运行的对象,事实上,“AVM1Movie对象和AVM2对象之间不允许有互操作性(例如调用方法或使用参数)”

您有权访问as1源代码吗?如果您这样做了,我建议每次分数发生变化时触发事件,您可以在包装器类中侦听这些事件,而不必担心直接访问分数变量

你可以阅读更多关于AVM1Movie的信息