2014-04-27 53 views
0

如何使我點擊的對象在到達其最終位置之前開始圍繞舞臺 在圓圈(2,3)中移動。就像在這張照片enter image description here在結束某個點之前繞着舞臺走動(完成一圈)

的方式,我想通了,它可以是這樣的:

private function onClick(ev:MouseEvent):void 
    { 
     var currentObj:Sprite = ev.currentTarget as Sprite; 

     TweenLite.to(currentObj, 1, {x:first_X, y:first_Y, onComplete:goToPosition2 }); 

     function goToPosition2():void 
     { 
      TweenLite.to(currentObj, 1, {x:secontd_X, y:second_Y, onComplete:goToPosition3 }); 
     } 

     function goToPosition3():void 
     { 
      TweenLite.to(currentObj, 1, {x:third_X, y:third_Y, onComplete:goToPosition4 }); 
     } 
     .. 
     .. 
     . 
     . 
     . 
     //and so on and so on 

    } 

但我總覺得這是做的非常錯誤的方式。

+0

我覺得現在應該是實現高中幾何和觸發的好時機。用r和圓心作爲參數寫出圓的方程作爲函數。然後,您可以調用該函數來獲取位置在圓周上移動時的位置,然後隨着位置旋轉(具有不同中心的大圓圈)。 – CodeMouse92

+0

你爲什麼認爲你的方式錯了?對於一個不規則的路徑,你必須做一些類似你的想法。對於幾何上的REGULAR路徑(當然,這在外觀上可能仍然很複雜),必須有許多方法。看到我的答案是一個。 – Craig

回答

1

有點有趣,解決它的另一種方法可以是創建一個動畫片段,其中包含一個內部遵循運動路徑的「句柄」剪輯。稱此爲'驅動程序剪輯'。

然後爲了得到一個形狀/另一個moiveclip跟着它,開始在第1幀播放驅動程序剪輯並添加一個事件處理程序。在事件處理程序中,在每個幀上將您想要的對象的x和y同步到內部的驅動程序剪輯的處理剪輯中。也可以將該句柄剪輯的可見性設置爲false以隱藏它。當驅動程序剪輯到達結束幀時,您可以移除事件監聽器,並且形狀將處於其結束位置。

此方法適用於非常不規則的形狀,需要很長時間手動繪製代碼(假設您使用的是flash ide)。

0

簡單的方法:將您的對象包含在其父邊附近的父級MovieClip中。單擊時,旋轉父級,並增加其比例,以便您的對象追蹤螺旋路徑。

相關問題