そのため、コンテナー ムービークリップ内に 65 個のムービークリップを生成しました。(これはゲーム上にあるためコンテナー内にあり、ポップアップ内にあります。) MovieClip は、ライブラリ内の AS3 リンクされた MovieClip にアクセスすることによって作成されます。それぞれが MovieClip の配列に格納されます。そこから、いくつかのテキスト情報 (隠しテキストを含む) をそれぞれに入れ、いくつかのイベント リスナーを追加します。コード自体は、1 つのことを除いて問題なく動作します。イベント リスナーは、ムービークリップ自体ではなく、ムービークリップ内の TextField の 1 つとしてターゲットを受け取ります。マウス イベント リスナーがムービークリップに適用されていることを確認しました。
for (var i:int = 0; i < mcArray.length; i++)
{
mcArray[i] = new IDButton();
MovieClip(mcArray[i]).tf1.text = String(ID1[i])
MovieClip(mcArray[i]).tf2.text = String(ID2[i]);
MovieClip(mcArray[i]).tf3.text = String(ID3[i]);
MovieClip(mcArray[i]).tf1.selectable = false;
MovieClip(mcArray[i]).tf2.selectable = false;
MovieClip(mcArray[i]).tf3.selectable = false;
MovieClip(mcArray[i]).tf1.visible = false;
MovieClip(mcArray[i]).tf2.visible = false;
MovieClip(mcArray[i]).name = "MC" + String(i);
container.addChild(MovieClip(mcArray[i]));
MovieClip(mcArray[i]).addEventListener(MouseEvent.CLICK, mcClickHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OVER, mcHoverHandler);
MovieClip(mcArray[i]).addEventListener(MouseEvent.ROLL_OUT, mcOffHandler);
MovieClip(mcArray[i]).x = 0;
MovieClip(mcArray[i]).y = MovieClip(mcArray[i]).height * i;
}
(正直に言うと、MovieClip が冗長であるかどうかはわかりません。これは、フラッシュに対する私の一般的な信頼の欠如を示していると思います。)
テストするために、mcClickHandler 関数でターゲット名をトレースしたところ、「tf3」が返され続けました。