0

ねえ、私は配列内の各項目にトゥイーンを適用しようとしています (これはすべて単なる実験です...トゥイーンについてもっと学ぼうとしています)。これが私のコードです:

import flash.events.Event
import fl.transitions.TweenEvent
import flash.events.MouseEvent;
import flash.utils.Dictionary;
import flash.display.MovieClip;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.motion.Color; 

var bubbles:Array = [];
var numBubbles:int=55;

for (var i:Number=0; i<=numBubbles-1;i++){
    bubbles.push(new bubble());
    stage.addChild(bubbles[i]);
    startMotion(bubbles[i]);
}

function startMotion( TheBubble:bubble ){
    var tweenY:Tween = new Tween(TheBubble, "y", Regular.easeIn, TheBubble.y, -5, 3, true);
}

ほとんどの場合、トゥイーンは再生を開始しますが、バブルの 1 つを除いてすべてのトゥイーンが停止します。

numBubbles が 5 から 10 のような低い数値に設定されていると、終了する可能性が高くなります。これはトゥイーン制限の問題でしょうか? 私はそれが可能性が高いとは思いませんでした。

進行し続けるバブルは、配列の最初のバブルでも最後のバブルでもありません。まだどれなのか絞り込もうとしているのですが、最初と最後に色を塗って大体わかりました。編集:(やや)ランダムのようです。色のついた方がうまくいくこともあります - ほとんどの場合、それは他のものの 1 つです。

ああ、これがバブルクラスです:

package{
    import flash.display.MovieClip;
    import flash.events.Event;
    import fl.transitions.Tween;
    import fl.transitions.easing.*;

    public class bubble extends MovieClip{
        var bubbleSize:int;
        public function bubble(){
            this.bubbleSize=Math.ceil(Math.random()*15)+15;
            this.width=bubbleSize;
            this.height=bubbleSize;
            this.x = Math.random()*(550-bubbleSize);
            this.y = 400+Math.random()*400;
        }
    }
}

助けや洞察をいただければ幸いです。

4

3 に答える 3

0

メイン コードが .as ファイルではなくタイムライン フレームにある場合、ループする「再生ヘッド」によって何度もトリガーされる可能性があります。早い段階で「stop()」を追加すると、問題が解決する可能性があります (?)
または、Flash ファイルを外部の Document.as クラスにリンクして、そこにメイン コードを配置します。

于 2013-07-23T08:20:26.873 に答える
0

この問題は、Adobe フォーラムの誰かによって修正されました: http://forums.adobe.com/thread/1260275

代わりに次のコードを使用する必要があります。

import flash.events.Event

import fl.transitions.TweenEvent

import flash.events.MouseEvent;

import flash.utils.Dictionary;

import flash.display.MovieClip;

import fl.transitions.Tween;

import fl.transitions.easing.*;

import fl.motion.Color;



var bubbles:Array = [ ];

var numBubbles:int=55;

var tweenY:Tween;

var tweenA:Array = [];



for (var i:Number=0; i<=numBubbles-1;i++){

    bubbles.push(new bubble());

    stage.addChild(bubbles[i]);

    startMotion(bubbles[i]);

}



function startMotion( TheBubble:bubble ){

    tweenY = new Tween(TheBubble, "y", Regular.easeIn, TheBubble.y, -5, 3, true);

tweenA.push(tweenY);

}
于 2013-07-23T00:37:56.853 に答える