我对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文件中变量的值?
答案 0 :(得分:0)
如果变量是在同一个package
而不是另一个class
中声明的,那么您应该可以在不做任何特殊操作的情况下分配变量。
如果它在另一个班级,则将lives
变量声明为static public var lives: Number
。这样您就可以使用otherClass.lives
分配给变量。无论您创建了多少个对象,都只会存在static
变量的一个副本。