2012-09-18 33 views
0

我的Flash AS3腳本找到Y位置補間的對象,我的問題是如何尋找(跟蹤)Y位置補間運動目標...的Flash AS3 - 在如下移動

我想知道像的位置: 對象A = -50,0,25,50 ... 150,170,180,200,210 ...,750,800

var objTween = new Tween(objectA, "y", Strong.easeOut, -100, 800, 15, true); 
objTween.start(); 
+0

如何監聽[Tween的MOTION_CHANGE](http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/transitions/Tween.html#event: motionCh憤怒)事件和檢查處理程序中的位置? –

回答

0

可以收聽該觸發每次TweenEvent.MOTION_CHANGE事件補間對象已被修改。

Documentation

例(未經測試):

var objTween:Tween = new Tween(objectA, "y", Strong.easeOut, -100, 800, 15, true); 
objTween.addEventListener(TweenEvent.MOTION_CHANGE, onTweenChange); 
objTween.start(); 

[...]

function onTweenChange(e:TweenEvent):void { 
    trace(objectA.y); 
} 
1

此外,如果你正在尋找剛剛打印出來的值你可以直接運行補間功能,我認爲它很酷

for (var i:int=0; i< 15*60; i++) { 
    trace (Strong.easeOut(i, -100, 800, 15*60)); 
} 

(Documentation)

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

var objTween = new Tween(objectA,"y",Strong.easeOut,-100,800,15,true); 
objTween.addEventListener(TweenEvent.MOTION_CHANGE, tweenEvents); 
objTween.start(); 

function tweenEvents(e) 
{ 
    switch (objectA.y) 
    { 
     case -100 : 
      trace("objectA is at -100"); 
      break; 
     case 800 : 
      trace("objectA is at 800"); 
      break; 

     default : 
      trace(objectA.y); 
    } 
} 

我是開關case語句的大風扇,僅僅是因爲他們覺得比一系列if else語句吸塵器......你可以不喜歡if (objectA.y ==50){trace("at 50")};

希望幫助:)

+0

如果想要在特定的座標系中觸發特定的事件,爲什麼不創建一個簡單的條件來跟蹤它的位置......就像上面那樣,但TweenListener真的有必要嗎?根據我的經驗,它將通過補間來知道它在哪裏,不管。 雖然我從來沒有使用過本土的Tween類,但我經常選擇Greensock,它提供了一些有用的技巧和反饋。 http://www.greensock.com – MaxG