2012-03-15 69 views
0

我对AS3有点新,但我有一个问题。ActionScript类号通讯

我有一个名为“生命”的变量。这是一个数字。我也有一堂课。它被称为“敌人”。在“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文件中的变量的值?

+0

描述很好,但代码会更有帮助。 =) – 2012-03-15 22:14:33

+0

好的。坚持一秒钟...... – Monkeyanator 2012-03-15 22:15:11

+0

没有代码,但更好吗? – Monkeyanator 2012-03-15 22:16:04

回答

0

如果变量声明在同一个package而不是另一个class中,您应该能够分配给它而不做任何特殊的事情。

如果它在另一个类中,则声明lives变量为static public var lives: Number。通过这种方式,您可以使用otherClass.lives分配给变量。无论您制作多少个对象,只有一个static变量副本存在。

+0

它不在课堂上。它只是在主文件中。你知道,随着时间表和什么? – Monkeyanator 2012-03-15 23:08:54