私の問題は次のとおりです。
ダイナミック テキスト ボックス (text_txt) と基本的な背景の四角形を含むムービークリップで構成されるメニューがあります。
インスタンス名 (item1_mc など) で定義された各アイテムに、すべてのアイテム名を配列に入れてループすることにより、MouseEvent.CLICK のイベント リスナーを割り当てました。
var menuItemsArray:Array = [item1, item2, item3, item4, item5, item6, item7, item8, item9, item10, item11, item12];
for(var i:int = 0; i < menuItemsArray.length; i++){
menuItemsArray[i].text_txt.text = labelArray[i];
menuItemsArray[i].addEventListener(MouseEvent.CLICK, menuItem_click);
}
...そして、次を使用して、どちらが押されているかを判断します (そして、テキストを取り除きます)。
function menuItem_click(e:MouseEvent){
unit_name = e.target.text;
}
...そして、MovieClip 内の TextField を直接クリックすると (テキストが返されます)、すべて正常に動作しますが、MovieClip の縁 (および動的テキスト ボックスの領域の外側) をクリックすると、エラー #2007 が返されます。テキストを含まない [object menuItem_button_23] からテキストを取得しようとしたためです。
理想的には、MovieClip の「ボタン」をクリックした場所に関係なく、テキストが引っ張られますが、e.currentTarget、e.target、および両方と .text の組み合わせなどを試しました。 、 .text_txt.text など - しかし、すべてが外側に沿って「デッド」ゾーンを持つという同じ問題で終わります。
さらに、本質的に私がやろうとしているのは、ラベル テキストを含む配列によって (内部テキスト フィールドを介して) ラベル付けされた MovieClip 'ボタン' のメニューを作成することです。次に、ボタンをクリックすると、どちらが押されているかを判断し、ラベルを取得して、ラベルテキストに関連する詳細情報にアクセスできるようにします。
誰かが解決策、または私がやろうとしていることのより良い方法を持っているなら、私はすべて耳にします。私の AS3 の経験/知識はせいぜい平均的なものであり、私がやろうとしていることを達成するためにいくつかの新しいテクニックを学びたいと思っています. 必要に応じて、さらに情報を提供することもできます。
ありがとう!