2016-12-04 6 views
-1

私はActionscript-3(Adobe Flash CS6)のインタラクティブマップで作業しています。1つのボタンで無限のムービークリップを表示するにはどうすればよいですか?

私がしようとしているのは、1つのボタンで、各マウスクリックで複数のオブジェクト(ムービークリップ)を表示することです。

私は現在、このコードで働いているが、私は、複数のムービークリップを表示する方法を見つけるために管理することができない、私は1つだけを表示することができます。

btn_ally_unit.addEventListener(MouseEvent.CLICK, mostrar_ally_unit2); 

function mostrar_ally_unit2(event:MouseEvent):void 
{ 
    map_editor.ally_unit.visible = true; 

} 

私はいずれにも適用するには、これを拡張するにはどうすればよいですムービークリップの数?

+2

これらの_無限の_オブジェクト番号は保存されていますか?配列や何か? – someOne

+0

そのムービークリップは...ライブラリに保存されていますか? コードを投稿すると、1つの画像(1つのムービークリップ)を表示することしかできません。 ボタンをクリックするたびに、一度に1つ以上の画像(ムービークリップ)を作成(または見えるように)したいと考えています。 お返事ありがとうございます – Dreis

+0

あなたはその単一の 'ally_unit'を複製しようとしていますか?それはあなたが欲しいものですか? –

答えて

0

私は無限にあなたが不定であると確信しています。

イベントクラスのtargetプロパティを使用してクリックしたユニットをターゲットにします。次のようなものがあります。

btn_ally_unit.addEventListener(MouseEvent.CLICK, mostrar_ally_unit2); 

function mostrar_ally_unit2(event:MouseEvent):void 
{ 
    event.target.visible = true; 

} 

ご覧になりますか? (event:MouseEvent)は、この関数が変数名にeventという1つの引数(MouseEvent)を期待していると言っています。これは規約ですが、私はmeをマウスイベントの略語として使用したいと考えています。他の人はただeという文字を使用します。 OK。今すぐeventは、イベントを受け取ったものであるプロパティーtargetを持っています。この場合、あなたのユニットの1つになります。ユニットはvisibleのプロパティを持っています。これは行ったように切り替えられますが、相対的なマウスイベントターゲットを使用すると、すべてのユニットに対して同じコード行を使用できます。もちろん

ノート

あなたは、各ユニットにイベントリスナーを追加する必要があります。それをクラスの一部にすることもできますし、新しいユニットがインスタンス化されたときに追加することもできます。 ActionScriptの3のイベントフローを使用して

ノート

は注意が必要です。これについてのチュートリアルを探してください。 Adobeからのイベントフローに関連するものはlinkです。

+0

私の2番目の注釈は、 "イベントフローを使用するのは難しい"と述べています。これを誤解しないでください。イベントを使用する場合は、イベントフローのデフォルトパターンを使用しています。フローを使用するか使用しないかは選択できません。つまり、イベントフローはas3のように直感的なものではありませんが、以前のASリリースよりもはるかに多用途で強力です。通常、デフォルトはうまく動作します。それで私が提案したものを試して、それがうまくいくかどうかを見てくださいそれがなければ、event.targetが最初に舞台になるかもしれないからかもしれません!投稿したリンクがその問題を解決するのに役立たない場合は教えてください。 –

関連する問題