2012-03-16 26 views
0

爲了誰可以照顧,幫助別人:的對象座標與框架在時間軸上

我期待創建一個對象的座標對應的動畫(也許是一幀一幀)。具體來說,我想要一個可拖動對象的座標(鎖定到x軸)指示特定影片剪輯的播放頭應該在哪裏。

換句話說,假設我有一個100px寬的舞臺,並且我希望該舞臺上的某個對象的每個px位置都對應一個動畫片段的特定幀。

在概念上,我覺得它應該像加載一個對象座標到一個變量一樣簡單,然後通過一個簡單的數學方程傳遞該變量,調整它爲movieclip長度...但正確的時候,我的大腦得到油炸。

找出如何將可拖動對象鎖定到x軸的過程非常簡單,但是從那裏我很難過。我對AS3不是很瞭解,但我確實喜歡認爲我理解這些概念。

預先感謝您。

+0

你在玩什麼樣的影片剪輯?就像它是一個外部swf或MovieClip對象?你知道它有多少幀? – 2012-03-16 08:54:07

回答

0

嘗試以下操作:

import flash.events.Event; 

//the min (left-most) coord your draggable mc can be dragged 
var minX:int=0; 

//the max (right-most) coord your draggable mc can be dragged 
var maxX:int=100; 

var frameTo:uint; 

//enterframe listener to check drag_mc x position continuously 
addEventListener(Event.ENTER_FRAME, enterframe_handler); 

function enterframe_handler(e:Event):void 
{ 
    //drag_mc is your draggable movieclip, anim_mc is the animation 
    //drag_mc.x should always be between minX and maxX: (minX <= drag_mc.x <= maxX) 
    //(drag_mc.x/(maxX - minX) gives us the "percentage" (from 0 to 1) 
    //multiply by the animation's total frames lenght, 
    // and add 1 (because frame numbers begin at 1) 
    frameTo = 1 + Math.floor((drag_mc.x/(maxX - minX))* anim_mc.totalFrames); 

    //set animation to target frame! 
    anim_mc.gotoAndStop(frameTo); 
} 
+0

謝謝!這似乎應該起作用,但是,似乎正在發生的事情是,一旦它編譯完成,它正在查看drag_mc的當前位置,並轉到anim_mc中的相應幀。在初始加載後,移動drag_mc不會影響anim_mc。我將繼續使用它,但如果這看起來像是一個簡單的修復,我就會全神貫注。 – illuzion25 2012-03-16 17:29:48

+0

您應該將最後一段代碼放入一個enterframe監聽器,以便繼續檢查drag_mc的位置。我將修復代碼示例以顯示此內容。 – danii 2012-03-16 18:31:08