如何从AS3中另一个类的符号引用实例?

时间:2012-11-27 15:30:54

标签: actionscript-3 class

我有一个名为character1的符号(带有自己的类Character1),其中有一个带有自己实例名称的符号:charTarget1(要点击的项目的目标)。

在另一个名为Track1的类中,我试图在hitTestObject循环中引用实例charTarget1,但每次我尝试运行代码时都会遇到错误:

1120: Access of undefined property charTarget1.

我正在尝试运行的循环是:

private function track1Loop(evt:Event):void{
        if(charTarget1.hitTestObject(game1End)){
            gameWin=true
            stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);
            stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyReleased);
        }
    }

1 个答案:

答案 0 :(得分:0)

确保character1是公共的,并且charTarget1是一个公共var,并且两者都可用于Track1类。您必须包含MainClass(不知道它的名称)和Character1类的实例。这将在下面工作:

private function track1Loop(evt:Event):void{
    if(MainClass.character1.charTarget1.hitTestObject(game1End)){
        gameWin=true
        stage.removeEventListener(KeyboardEvent.KEY_DOWN, onKeyPressed);
        stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyReleased);
    }
}

但是,鉴于您可能需要跟踪的内容不止一些,最好设置某种类型的数据类来跟踪所有模型,并可能使其成为公共静态类或甚至是Singleton,因此您可以在代码中的任何位置访问它们,而无需将它们传递到所有类中。