ActionScriptのTweenエンジンのひとつGTween
には強制的にTweenを最終値へジャンプさせるend
関数が用意されています。
このend
関数を実行した時にonComplete
プロパティに設定したCallback関数は実行されるかが気になりました。
気になったら調べる、どんな些細なことでも、という訳でちょっと実験。
import com.gskinner.motion.GTween; import com.gskinner.motion.easing.*; import flash.display.Sprite; import flash.display.Graphics; function drawBackground ():void { var sp:Sprite = new Sprite(); var g:Graphics = sp.graphics; g.clear(); g.beginBitmapFill(new PNGChecker()); g.drawRect(0, 0, stage.stageWidth, stage.stageHeight); g.endFill() addChild(sp); } drawBackground(); function createMotionTarget ():Sprite { var sp:Sprite = new Sprite(); var g:Graphics = sp.graphics; g.clear(); g.beginFill(0xff0000); g.drawCircle(0,0,20); g.endFill(); return sp; } var target_sp:Sprite = createMotionTarget(); target_sp.x = target_sp.y = 30; addChild(target_sp); var gtween:GTween = new GTween(target_sp, 2); gtween.ease = Sine.easeOut; gtween.onComplete = onMotionComplete; function onMotionComplete (g:GTween):void { trace(g); } gtween.end(); |
gtween.end();
を実行するとonMotionComplete
が呼び出されていました。
そうなっていて欲しかったので一安心です。