ActionScript类号通信

时间:2012-03-15 22:08:17

标签: oop class actionscript

我对AS3有点新鲜,但我有一个问题。

我有一个名为“生命”的变量。这是一个数字。我也有一节课。它被称为“敌人”。在“Enemy”类中,有一个名为“collision_detection”的函数。如何从“collision_detection”中更改“生命”的值?谢谢!

编辑:

我有一个敌人类。我需要在课堂内进行沟通,让主程序知道发生了碰撞。如何将此消息发送到主程序?

编辑II:

这是碰撞功能:

public class Enemy extends MovieClip {

    private var hoster : MovieClip; 
    private var life: Number; 

    public function temp_bad_thing(host : MovieClip , lives : Number) {

        this.addEventListener(Event.ENTER_FRAME , check_collision); 

        hoster = host; 
        life = lives; 

        this.y = 0; 
        this.x = Math.floor(Math.random()*(551));


    }

    private function check_collision (evt:Event) : void{

    if(this.hitTestObject(hoster) == true){

        trace('COLLISION'); 

        parent.removeChild(this); 

        removeEventListener(Event.ENTER_FRAME , check_collision); 

        }

    }

}

现在我怎样才能让这个类改变主flash文件中变量的值?

1 个答案:

答案 0 :(得分:0)

如果变量是在同一个package而不是另一个class中声明的,那么您应该可以在不做任何特殊操作的情况下分配变量。

如果它在另一个班级,则将lives变量声明为static public var lives: Number。这样您就可以使用otherClass.lives分配给变量。无论您创建了多少个对象,都只会存在static变量的一个副本。