与时间轴上的帧相关的对象坐标

时间:2012-03-16 03:07:33

标签: actionscript-3 drag-and-drop coordinates timeline

对任何可能提供帮助的人:

我希望创建一个与对象坐标对应的动画(可能是逐帧)。具体来说,我想让一个可拖动对象的坐标(锁定到x轴)指示特定影片剪辑的播放头应该在哪里。

换句话说,假设我有一个100px宽的舞台,我希望该舞台上一个对象的每个px位置对应一个动画片段的特定帧。

在概念上,我觉得它应该像将对象坐标加载到变量中一样简单,然后使用简单的数学方程式传递该变量,将其调整为动画片段长度...但是就在那时我的大脑会被炸掉

找出如何将可拖动对象锁定到x轴非常简单,但是从那里我很难过。我对AS3并不是特别熟悉,但我确实认为我理解这些概念。

提前谢谢。

1 个答案:

答案 0 :(得分: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);
}