2016-09-15 29 views
-1

序文:私はプログラマーではありません。私はアーティストで、AS3では非常に恐ろしく、非常に基本的な方法を使用して、 1000 +行の冗長コードで終わります。アレイのアイテムを切り替えます

質問:ステージ上に10個のボタンが配列されています。彼らはそれぞれ "内"と "外"のアニメーションを持っています。以前にクリックされた他のボタンの「アウト」アニメーションを再生しながら、どのボタンも簡単にクリックして「イン」アニメーションを再生するにはどうすればよいですか?これを達成する最も簡単な方法は何ですか?

答えて

1

ボタンプレスを処理するコードがある場合は、ボタンの配列をループして、_stateのステータス(またはボタンが「イン」または「アウト」のいずれかを示す変数/プロパティ)を確認します。 "in"のものが見つかった場合は、 "out"にする関数を呼び出します。

あなたが考慮するためのいくつかの擬似コード:

function buttonClicked(e:MouseEvent):void{ 
    for (var i:int = 0; i < buttonArray.length; i++){ 
     if (buttonArray[i]._state == "in"){ 
      buttonArray[i]._state = "out"; 
      // play button "out" animation 
     } 
    e.target._state = "in"; 
    // play e.target "in" animation 
} 
+0

私が概念を理解するが、実際には、私はしません。 ._stateは私を混乱させています。ボタンインスタンスに変数をどのように適用しますか? 私はそれを2つの異なる配列に設定しました:ボタン名を生成するための1とアクティブ/非アクティブ状態を追跡するためのボタン変数を保持する第2の配列。 – Golgo13

+0

ボタンを作成するコードを追加します。 (IDEで作ったのですか?) –

+0

IDEで作成した場合は、ボタンを選択してF9を押してアクションパネルを開き、各ボタンインスタンスに 'var _state:String;'を追加することができます。実行時にそれらを作成すると、はるかに簡単です。あなたがしなければならないのは、同じコード行をクラス.asファイルのコンストラクタの上に追加することだけです。 –

関連する問題