2012-03-16 9 views
0

上のフレームに関連する座標をオブジェクト:Anが支援する気にも誰にもタイムライン

私はオブジェクトの座標に対応したアニメーション(フレームによっておそらくフレーム)を作成するために探しています。具体的には、ドラッグ可能なオブジェクトの座標(x軸にロックされている)を指定して、特定のムービークリップの再生ヘッドの位置を指定したいとします。

つまり、100pxの幅のステージがあり、そのステージのオブジェクトの各ピクセル位置をムービークリップの特定のフレームに対応させたいとします。

概念では、オブジェクト座標を変数にロードしてから、その変数を単純な数式で渡し、ムービークリップの長さを調整するのは簡単だと思いますが、揚げた。

ドラッグ可能なオブジェクトをx軸にロックする方法を見つけるのはかなり簡単ですが、そこから私は困惑しています。私は特にAS3に精通していませんが、私はその概念を理解していると思っています。

ありがとうございます。

+0

どのような種類をプレイしていますか?それは外部swfやMovieClipオブジェクトのようですか?あなたはそれが持っているフレームの数を知っていますか? –

答えて

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

+0

drag_mcの位置をチェックし続けるために、エンコードフレームの最後のビットをエンコードする必要があります。これを示すコード例を修正します。 – danii