0

X 軸に沿って前後に移動するフラッシュ オブジェクトを使用して、フラッシュ アニメーションを作成しています。たとえば、オブジェクトを位置 x = 10 から位置 x = 100 に移動し、位置 x = 100 に 2 秒間留まり、同じモーション特性で初期位置に戻りたいと思います。私は Tween Classes を使用しています。これにより、イージングなどを変更できます。また、Tween yoyo メソッドも使用しています。問題は、オブジェクトを 2 番目の位置 (最初の位置に戻る前) に数秒間留まらせる方法がわからず、ヨーヨー イベントを停止する方法がわからないことです。オブジェクトを前後に動かして最初の位置にとどめたいのですが、ヨーヨーでは繰り返し続けます(ヨーヨーメソッドを使用しないでください...)。これまでのコードを添付します。

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var myTween = new Tween(rectangle, "x", Strong.easeInOut, 100,300, 1, true);

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
function onFinish(e:TweenEvent):void {
myTween.yoyo();
}
4

1 に答える 1

0

onFinish メソッドでタイムアウトを設定する必要があります。コードは次のようになります。

import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;

var myTween = new Tween(rectangle, "x", Strong.easeInOut, 100,300, 1, true);

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish);
function onFinish(e:TweenEvent):void {
  var delay:int = 1000;
  setTimeout(delay,reverse_tween); // delay - delay in milliseconds
}
function reverse_tween():void{
  myTween.yoyo();
  myTween.removeEventListener(TweenEvent.MOTION_FINISH, onFinish);
}

それが役に立てば幸い

于 2012-07-04T20:09:55.620 に答える