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

for文を使ったボタン
ボタンが2つあり、そのボタンをロールオーバー、ロールアウトでそれぞれ違うmcを動かしたいのですが、うまくいきません。ボタンを「maru1、maru2」として動かしたいmcを「btn1、btn2」とインスタンス名をつけて以下のスクリプトを書きました。
maru1.addEventListener(MouseEvent.ROLL_OVER,onMouse1);
maru1.addEventListener(MouseEvent.ROLL_OUT,outMouse1);
maru1.buttonMode = true;
maru2.addEventListener(MouseEvent.ROLL_OVER,onMouse2);
maru2.addEventListener(MouseEvent.ROLL_OUT,outMouse2);
maru2.buttonMode = true;
function onMouse1(e:MouseEvent):void{
mc_tween = new Tween(btn1, "scaleX", Elastic.easeOut, 0.7, 1, 1, true);
mc_tween.start();
}
function outMouse1(e:MouseEvent):void{
mc_tween = new Tween(btn1, "scaleX", Elastic.easeOut, 1, 0.7, 1, true);
mc_tween.start();
}
function onMouse2(e:MouseEvent):void{
mc_tween = new Tween(btn2, "scaleX", Elastic.easeOut, 0.7, 1, 1, true);
mc_tween.start();
}
function outMouse2(e:MouseEvent):void{
mc_tween = new Tween(btn2, "scaleX", Elastic.easeOut, 1, 0.7, 1, true);
mc_tween.start();
}
これでも動くのですが、ボタンが沢山あった場合にfor文を使ってできないかと考え、ttp://www.oro.co.jp/web/creator/flash/actionscript/soft-button.htmlを参考に
var mc_tween:Tween;
//イベント登録
for(var i:int = 1; i < 3; i++){
this["maru"+i].addEventListener(MouseEvent.ROLL_OVER, rollOverEvent);
this["maru"+i].addEventListener(MouseEvent.ROLL_OUT, rollOutEvent);
this["maru"+i].buttonMode = true;
}
function rollOverEvent(event:Event):void{
var btn:MovieClip = event.target as MovieClip;
mc_tween = new Tween(btn, "scaleX", Elastic.easeOut, btn.scaleX, 1.5, 1, true);
mc_tween = new Tween(btn, "scaleY", Elastic.easeOut, btn.scaleY, 1.5, 1, true);
addChildAt(btn, 5);
}
function rollOutEvent(event:Event):void{
var btn:MovieClip = event.target as MovieClip;
mc_tween = new Tween(btn, "scaleX", Elastic.easeOut, btn.scaleX, 1, 1, true);
mc_tween = new Tween(btn, "scaleY", Elastic.easeOut, btn.scaleY, 1, 1, true);
}
と書いたのですが、上手く行きません。<var btn:MovieClip = event.target as MovieClip;>の部分でどのように「btn1、btn2」を参照したらいいのでしょうか。
作業環境はmacOSX flashCS5 actionscript3です。よろしくお願い致します。

A 回答 (2件)

書き直した方のスクリプトってよく見ると


Tweenをstart()してないんじゃないですか?

この回答への補足

返事が遅くなって申し訳ございません。
start();については質問欄に入れ忘れておりました。実際には入れておりますが、それでもうごきませんでした。ご指摘ありがとうございました。

補足日時:2010/11/05 19:53
    • good
    • 0

targetじゃなく


currentTargetにしたらどうでしょう?

この回答への補足

ご回答ありがとうございます。
var btn:MovieClip = event.target as MovieClip;の部分を
var btn:MovieClip = event.currentTarget as MovieClip;にしてみたのですが、うまくいきませんでした。
currentTargetの使い方を調べてまたやってみたいと思います。ありがとうございます。

補足日時:2010/11/04 09:12
    • good
    • 0

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