D0812071 Tweenクラス実行後の処理を分岐する記述方法
Name スギノハラ
Date 2008年12月07日 (日) 01時02分
Message 憲ちゃん、皆さん、こんにちは。

少し伺いたい事があって、投稿させていただきました。
よろしければ、以下についてご意見をお願いします。

下記のスクリプトは、各ボタン(button1,button2,button3)を押した時
同じTweenアニメーションを行わせ、各々の指定フレームへ移動するものです。

動作に問題はないのですが、ボタンごとに記述している同一の
Tweenクラスを一度に省略できる気がしてなりません…

このモヤモヤを解消したいので、省略可能の有・無だけでも
知ることができればと思っています。

よろしくお願いします。


function move1(){
var T1:Tween = new Tween(this.title_mc,"_alpha",None.easeNone,100,0,1,true);
var T2:Tween = new Tween(this.title_mc,"_y",None.easeNone,0,50,1,true);
T2.onMotionFinished = function(){
_root.gotoAndStop(2);
};
}
_root.button1_mc.onRelease = function(){
move1();
}

function move2(){
var T1:Tween = new Tween(this.title_mc,"_alpha",None.easeNone,100,0,1,true);
var T2:Tween = new Tween(this.title_mc,"_y",None.easeNone,0,50,1,true);
T2.onMotionFinished = function(){
_root.gotoAndStop(3);
};
}
_root.button2_mc.onRelease = function(){
move2();
}

function move3(){
var T1:Tween = new Tween(this.title_mc,"_alpha",None.easeNone,100,0,1,true);
var T2:Tween = new Tween(this.title_mc,"_y",None.easeNone,0,50,1,true);
T2.onMotionFinished = function(){
_root.gotoAndStop(4);
};
}
_root.button3_mc.onRelease = function(){
move3();
}
Response 01
2008年12月07日 (日) 03時34分> joy 
スギハラさん、
以下のように、短縮できます。

//ここから
this.stop();
import mx.transitions.Tween;// Tweenクラスの設定
import mx.transitions.easing.*;

function Move(i:Number) {//カスタム関数の引数として、i:Numberを設置
var T1:Tween = new Tween(this.title_mc, "_alpha", None.easeNone, 100, 0, 1, true);
var T2:Tween = new Tween(this.title_mc, "_y", None.easeNone, 0, 50, 1, true);
T2.onMotionFinished = function() {
_root.gotoAndStop(i+1);
};
}

for (var i:Number = 1; i<=3; i++) {//iをfor文で廻す
var btn:MovieClip = _root["button"+i+"_mc"];//btnで参照する
btn.id = i;//iを一度、btn.idに保管しておく、保管しないと、for文で廻すと、最後のi=3が入ります→ここは、間違いやすいところです。
btn.onRelease = function() {
//trace(this.id);
Move(this.id);// i ではなく、btn.id、即ち、this.idを代入する
};
}
//ここまで
となります。
Response 02
2008年12月14日 (日) 07時39分> スギノハラ 
joy 様

お返事が遅くなってしまい、申し訳ありません。

私事に付き合ってくださり、ありがとうございます♪
お陰さまで頭もスクリプトもスッキリする事ができました。

まだまだfor文について勉強する必要がありそうです。。
具体的なお答えまで下さり、本当に感謝いたします!

このページの先頭へ