重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
FLASH CS3&AS3.0、WIN XPの環境にて、
AS3.0で複数のButtonコンポーネントを動的に作成する方法を勉強中なのですが、var aButton[i]の所で当然ながらエラーが出てしまい、
どの様に記載すればよいのか、戸惑っております。
大変お手数をお掛けしますが、ご教授頂けると幸いです。
どうぞ宜しくお願い致します。


/* ==================================== */

import fl.controls.Button;

var btn_names_array:Array = new Array("1", "2", "3", "4", "5")
btn_max = length.btn_names_array;

for(i=1;i<btn_max;i++){

var aButton[i]:Button = new Button();
addChild(aButton[i]);
aButton[i].label = btn_names_array[i];
aButton[i].toggle = true;
aButton[i].emphasized = true;
aButton[i].move(10, 10+30);
var format[i]:TextFormat = new TextFormat();
format[i].size = 15;
aButton[i].setStyle("textFormat", format[i]);

aButton[i].addEventListener(MouseEvent.CLICK, clickHandler[i]);

function clickHandler[i](event:MouseEvent):void {
trace("Event type "+[i]+":" + event.type);
}

}

A 回答 (1件)

これで動きます。


でももっと上手な書き方があるような気がします。
私も知りたい・・・


import fl.controls.Button;
var btn_names_array:Array = new Array("1", "2", "3", "4", "5");
var btn_max:int = btn_names_array.length;
var aButton:Object = {};
for (i=0; i<btn_max; i++) {
var btnTmp:Button = new Button();

aButton[i] = btnTmp;
addChild(aButton[i]);
aButton[i].label = btn_names_array[i];
aButton[i].toggle = true;
aButton[i].emphasized = true;
aButton[i].move(10, 10+30+i*40);
var format:TextFormat = new TextFormat();
format.size = 15;
aButton[i].setStyle("textFormat", format);

aButton[i].addEventListener(MouseEvent.CLICK, clickHandler);


}
function clickHandler(event:MouseEvent):void {
trace("Event type "+event.target.label+":" + event.type);
}
    • good
    • 0
この回答へのお礼

var i:intを追加して、たった今、正常に動く事を確認致しました。
今見ると、私のコードに多数ミスがありましたが、
それらの修正及び、教えて頂き本当に有難う御座いました!
また、大変勉強になりました。
本当に有難う御座いました!

お礼日時:2008/08/08 15:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!