ActionScript3.0  トゥイーン系ライブラリ BetweenAS3 (その2)

| コメント(0) | トラックバック(0)
BetweenAS3を使っていて、悩んだことがあったのでソースを調べてみた。

悩んだ内容は、逐次処理(シリアル)、並行処理(パラレル)を実行するときに、不特定の数を動作させたい時、そのトゥイーンを配列で渡せないかということ。

前回紹介したBetweemAS3の使い方では、シリアル、パラレル共に、その詳細のトゥイーンを引数につなげて設定して動かします。

// 順番に動かす場合はこんな感じ
var serialTween1:ITween = BetweenAS3.tween( mc2, { x:150 },{x:20,y:112}, 0.25);
var serialTween2:ITween = BetweenAS3.tween( mc2, { y:60 }, null, 0.15);
var serialTween3:ITween = BetweenAS3.tween( mc2, { x:200 },null, 0.2);

BetweenAS3.serial(serialTween1,serialTween2,serialTween3).play();

数も少なく、順番に動かす場合には、この方が直感的でわかりやすいと思います。
しかし、もっとシステマチックに動かさなければならない時は、これだと対処しきれないでしょう。

でも、BetweenAS3にはその対処法があったのです。素晴らしい!!

// シリアルはこれ
BetweenAS3.BetweenAS3.serialTweens( 配列 );

//パラレルはこれ
BetweenAS3.BetweenAS3.parallelTweens( 配列 );

簡単なサンプルは以下の通り
  // 動かすMovieClipを配列に保持
  var pointMcArray:Array; = [mc1,mc2,mc3,mc4,mc5,mc6];
  // 動作するtweenを保持する配列を定義
  var tweenArray = new Array();

  // for文でtweenを指定
  for(var i=0;i< pointMcArray.length ;i++){
    var tmpPointMc = pointMcArray[i];
    // tweenを定義
    var tmpTween:ITween = BetweenAS3.tween( tmpPointMc,
               { x:targetArray[i]["x"], y:targetArray[i]["y"] },
                null, 0.8, Cubic.easeOut);
    // tweenを配列に保持
    tweenArray.push(tmpTween);
  }

  // 配列を引数にtweenを設定(これはシリアル)
  var tween = BetweenAS3.serialTweens(tweenArray);
  tween.play();

下のサンプルFlashでは、Serial、Parallelボタンを押すと、ポッチがランダムな位置に(シリアル、パラレルで)移動します。
 

ごちゃごちゃした動きがある場合には、tweenを1つずつ指定するよりも、配列で指定した方が見やすいですね。


関連記事
ActionScript3.0  トゥイーン系ライブラリ BetweenAS3 (その1)
ActionScript3.0  トゥイーン系ライブラリ BetweenAS3 (その3)


トラックバック(0)

トラックバックURL: http://www.siesta-design.com/mtadmin/mt-tb.cgi/8

コメントする

2011年1月

            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31