作者DoraTerry (哆啦泰瑞)
看板Flash
標題[問題] TweenEvent.MOTION_FINISH只會執行一次
時間Sun Aug 2 01:19:36 2009
flash原始檔:
http://ppt.cc/MJpd
我是有一個小狗在"原地"跳的影片片段叫 dog1_jump()
然後我想用 tween類別 讓這個影片片段移動
讓小狗看起來好像真的在跳
我的問題是 TweenEvent.MOTION_FINISH 只會被執行一次 沒有反覆執行
所以小狗只跳一次就不再跳了
輸出結果是--------------
select_motion()
jump()
dog_jump_done()
select_motion()
jump()
我的程式碼是------------
import fl.transitions.Tween;
import fl.transitions.easing.*;
import fl.transitions.TweenEvent;
var dog:Sprite =new Sprite();
var dog_jump:MovieClip=new dog1_jump(); //小狗原地跳躍的影片片段
var myTween:Tween;
//---------------------------------------------
dog.scaleX=0.3;
dog.scaleY=0.3;
dog.x=1024;
dog.y=450;
dog.addChild(dog_jump);
addChild(dog);
select_motion();
function select_motion():void {
trace("select_motion()")
jump();
}
function jump():void {
trace("jump()")
dog.removeChild(dog.getChildAt(0));
dog.addChild(dog_jump);
myTween = new Tween(dog, "x", Strong.easeInOut, dog.x, dog.x-80, 2,
false);
}
myTween.addEventListener(TweenEvent.MOTION_FINISH, dog_jump_done);
function dog_jump_done(event:TweenEvent ):void {
trace("dog_jump_done()")
dog.x-=80;
select_motion();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.70.229
※ 編輯: DoraTerry 來自: 114.41.70.229 (08/02 01:23)
推 cjcat2266:jump()裡面的myTween = new Tween()就把myTween指到一個 08/02 01:26
→ cjcat2266:新的Tween物件了,所以監聽舊的myTween沒有用 08/02 01:26
→ DoraTerry:非常感謝!!!!!! 08/02 02:58