AS3 では GreenSock の TweenMax、iOS では Flash AIR 3.2 を使用しています。autoAlpha
最初から最後までではなく、トゥイーンの移動中に特定の時点 (トゥイーンの中央に達した後など) にプラグインを使用して、テキストの文字列がフェードを開始するようにしようとしています。現時点では、動きとアルファの両方を開始位置から終了までトゥイーンしています。これは可能ですか?
TweenMax.to(textOne, 14, {x:xScreenPos - 150, ease:SlowMo.ease.config(1, 0), repeat:-1, autoAlpha:0.5});
編集:これは関数と構文が修正された現在のコードですが、何らかの理由で機能しません。まだ動きのトゥイーンがありますが、アルファはもうトゥイーンしていません。ただし、ロジックは正しいようです。(後者で機能するため、alpha
現在は置き換えられています)。autoAlpha
import com.greensock.events.TweenEvent;
import com.greensock.TweenMax;
var _middle:Boolean = false;
var _tween:TweenMax;
public function run():void {
_tween = TweenMax.to(textOne, 14, {x:xScreenPosEnd, ease:SlowMo.ease.config(1, 0), repeat:-1});
_tween.addEventListener(TweenEvent.UPDATE, updateListener);
_tween.addEventListener(TweenEvent.REPEAT, repeatListener);
}
function updateListener(e:TweenEvent):void {
if(_tween.totalProgress() > 0.5 && _middle == false) {
TweenMax.to(textOne, 7, {ease:SlowMo.ease.config(1, 0), repeat:-1, alpha:0});
_middle = true;
}
}
function repeatListener(e:TweenEvent):void {
textOne.alpha = 1.0;
_middle = false;
}
編集:アルファトゥイーンtotalProgress()
に置き換えられましたがprogress()
、アルファトゥイーンには別の問題があります。デバッグするためにと の両方textOne.alpha
をトレースしました。_tween.progress()
AS3 のシングルスレッドの性質のためか、各ループの最後で呼び出しロジックを台無しにしています...アルファ トゥイーンの終了が遅れているため、REPEAT 呼び出しは時間内にアルファを 1 に設定できません。 、進行トゥイーンが開始する前。または、それは間違っているロジックの何かです。TextOneの(アルファ)トゥイーンタイムを6にしてみましたが、それでもめちゃくちゃです。
実際、もう少し考えてみると、何が起こっているのかよくわかりません。論理的な意味はありません。最初のアルファトゥイーンは問題ありませんが、繰り返しでめちゃくちゃになり、アルファトゥイーンを(ただし間違ったprogress()位置で)数回繰り返し、その後永遠に0のままになります。トレースのスナップショットは次のとおりです。
ALPHA: 0.0078125
PROGRESS: 0.9979285714285714
MIDDLE: true
...
ALPHA: 0
PROGRESS: 0.9992857142857144
MIDDLE: true
アルファ: 0
プログレス: 0.00028571428571438115 ミドル
: true
アルファ: 0
進行状況: 0.000714285714285826 中間
: false
ALPHA: 0.99609375
PROGRESS: 0.0015714285714287155
MIDDLE: false
...
ALPHA: 0.1015625
PROGRESS: 0.4504285714285715
MIDDLE: false
ALPHA: 0.09765625
PROGRESS: 0.4515714285714285
MIDDLE: false
...
ALPHA: 0.00390625
PROGRESS: 0.4992142857142858
MIDDLE: false
アルファ: 0
進行状況: 0.5003571428571431 中間
: false