对任何可能提供帮助的人:
我希望创建一个与对象坐标对应的动画(可能是逐帧)。具体来说,我想让一个可拖动对象的坐标(锁定到x轴)指示特定影片剪辑的播放头应该在哪里。
换句话说,假设我有一个100px宽的舞台,我希望该舞台上一个对象的每个px位置对应一个动画片段的特定帧。
在概念上,我觉得它应该像将对象坐标加载到变量中一样简单,然后使用简单的数学方程式传递该变量,将其调整为动画片段长度...但是就在那时我的大脑会被炸掉
找出如何将可拖动对象锁定到x轴非常简单,但是从那里我很难过。我对AS3并不是特别熟悉,但我确实认为我理解这些概念。
提前谢谢。
答案 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);
}