2012-03-15 8 views
0

私はAS3を少し新しくしましたが、質問があります。ActionScriptクラス番号通信

私は "lives"という変数を持っています。これは数字です。私もクラスがあります。それは「敵」と呼ばれています。 "Enemy"クラスには、 "collision_detection"という関数があります。どのようにして "life"の価値を "collision_detection"から変更できますか?ありがとうございました!

編集:

私は敵のクラスを持っています。私は、メインプログラムが衝突が発生したことを知らせるために、クラス内から通信する必要があります。このメッセージをメインプログラムに送信するにはどうすればよいですか?

EDIT 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

よろしいですか? 1秒でホールド... – Monkeyanator

+0

コードはありませんが、それは良いですか? – Monkeyanator

答えて

0

変数が同じpackageで宣言されていて、別のclassに宣言されていない場合は、特別な処理を行わずにその変数に割り当てることができます。

lives変数を別のクラスに指定する場合は、static public var lives: Numberという変数を宣言します。この方法で、otherClass.livesを使用して変数に割り当てることができます。作成するオブジェクトの数に関係なく、変数staticのコピーは1つだけ存在します。

+0

これはクラスではありません。それはメインファイル内にあります。あなたは、タイムラインなどで、知っていますか? – Monkeyanator

関連する問題