Координаты объектов, относящиеся к кадру на временной шкале - PullRequest
0 голосов
/ 16 марта 2012

Всем, кто может помочь:

Я хочу создать анимацию (возможно, кадр за кадром), которая соответствует координатам объекта. В частности, я хочу, чтобы координаты перетаскиваемого объекта (привязанные к оси x) указывали, где должна быть точка воспроизведения определенного фрагмента ролика.

Другими словами, предположим, что у меня есть сцена шириной 100 пикселей, и я хочу, чтобы каждое пиксельное местоположение объекта на этой сцене соответствовало определенному кадру видеоклипа.

По идее, я чувствую, что это должно быть так же просто, как загрузить координаты объекта в переменную, затем передать эту переменную с помощью простого математического уравнения, скорректировав его по длине фрагмента ролика ... но примерно тогда мой мозг зажжен .

Узнать, как привязать перетаскиваемый объект к оси X, было довольно легко, но оттуда я в тупике. Я не очень хорошо разбираюсь в AS3, но мне нравится думать, что я понимаю концепции.

Заранее спасибо.

1 Ответ

0 голосов
/ 16 марта 2012

Попробуйте следующее:

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);
}
...