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

FLASH CS3
アクション 2.0

Tweenを用いてイーズアウトの5種類をballを使って表現しようとしています。
ステージにball1からball5を置き、ボタンbt1を押すと右方向に移動させます。

//Tweenクラスを使用できるようにインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;

bt1.onRelease = function() {

//インスタンス「ball」の動きをTweenクラスを使って制御
var myTween1:Tween = new Tween(ball1, "_x", Regular.easeOut, 39, 400, 2, true);
var myTween2:Tween = new Tween(ball2, "_x", Strong.easeOut, 39, 400, 2, true);
var myTween3:Tween = new Tween(ball3, "_x", Elastic.easeOut, 39, 400, 2, true);
var myTween4:Tween = new Tween(ball4, "_x", Back.easeOut, 39, 400, 2, true);
var myTween5:Tween = new Tween(ball5, "_x", Bounce.easeOut, 39, 400, 2, true);
};


http://oshiete.goo.ne.jp/qa/7042246.htmlの回答で教えていただきましたfor文を
参考にして書き直しをしてみましたがBounce.easeOutのみ動きますが本来のもの
とは異なります。どのように変更すればいいのか教えてください。

//Tweenクラスを使用できるようにインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;

var easeList:Array = new Array();

//イージングの種類
easeList[1] = "Elastic.easeOut";
easeList[2] = "Strong.easeOut";
easeList[3] = "Elastic.easeOut";
easeList[4] = "Back.easeOut";
easeList[5] = "Bounce.easeOut";

bt1.onRelease = function() {
for (var i:Number = 1; i<=5; i++) {
_root["ball"+i];

for (var i:Number = 1; i<=5; i++) {
easeList[i+1];
//インスタンス「ball」の動きをTweenクラスを使って制御
var myTween = new Tween(_root["ball"+i], "_x", easeList[i+1], 39, 400, 2, true);
}
}
};

A 回答 (1件)

配列にイージングを入れるのは良いのですが


イージング自体ではなく "文字列" を入れているのが動作しない原因ではないでしょうか?


こんな感じ↓で動くと思います。

//-----------------------------------------
//Tweenクラスを使用できるようにインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;

var easeList:Array = new Array();

//イージングの種類
easeList[1] = Elastic.easeOut;
easeList[2] = Strong.easeOut;
easeList[3] = Elastic.easeOut;
easeList[4] = Back.easeOut;
easeList[5] = Bounce.easeOut;

bt1.onRelease = function() {
//インスタンス「ball」の動きをTweenクラスを使って制御
for (var i:Number = 1; i<=5; i++) {
var myTween:Tween = new Tween(_root["ball"+i], "_x", easeList[i], 39, 400, 2, true);
}
};
//-----------------------------------------


または 配列の要素は普通 0 から始まりますから
次のようにするとか。

//-----------------------------------------
//Tweenクラスを使用できるようにインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;
var easeList:Array = new Array();

//イージングの種類
easeList[0] = Elastic.easeOut;
easeList[1] = Strong.easeOut;
easeList[2] = Elastic.easeOut;
easeList[3] = Back.easeOut;
easeList[4] = Bounce.easeOut;

bt1.onRelease = function() {
//インスタンス「ball」の動きをTweenクラスを使って制御
for (var i:Number = 0; i<=4; i++) {
var myTween:Tween = new Tween(_root["ball"+(i+1)], "_x", easeList[i], 39, 400, 2, true);
}
};
//-----------------------------------------


さらに
Tween を個別に管理したい場合は
次のようにします。

//-----------------------------------------
//Tweenクラスを使用できるようにインポート
import mx.transitions.Tween;
import mx.transitions.easing.*;

var easeList:Array = new Array();
//イージングの種類
easeList[0] = Elastic.easeOut;
easeList[1] = Strong.easeOut;
easeList[2] = Elastic.easeOut;
easeList[3] = Back.easeOut;
easeList[4] = Bounce.easeOut;

bt1.onRelease = function() {
//インスタンス「ball」の動きをTweenクラスを使って制御
for (var i:Number = 0; i<=4; i++) {
_root["myTween"+i] = new Tween(_root["ball"+(i+1)], "_x", easeList[i], 39, 400, 2, true);
}
//個別呼び出し例
_root.myTween2.onMotionFinished = function() {
this.yoyo();
};
};
//-----------------------------------------
    • good
    • 0
この回答へのお礼

文字列がいけなかったのですか、わかりました。
ありがとうございました。

お礼日時:2011/10/01 22:39

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