跟踪通过时间轴动画的movieclip的x,y

时间:2013-08-09 19:26:55

标签: actionscript-3 animation position movieclip

我正在尝试追踪动画片段的位置(其中包含一个简单的时间轴动画),以便我可以附加另一个动画片段以便能够跟随它。

我该怎么做?

empty =包含时间轴动画的动画片段

mc =我要遵循“空”动画片

的动画片段
empty.addEventListener(Event.ENTER_FRAME, onMove);

function onMove(event:Event):void {
    var mc:MovieClip = new SmokeTween();
    mc.x = empty.x;
    mc.y = empty.y;
    mc.rotation = Math.round(Math.random() * 70);
    this.addChild(mc);
}

实际上我进入了“空”mc并且使用了这段代码,似乎工作正常:

this.addEventListener ( Event.ENTER_FRAME, traceFrame );

function traceFrame ( e : Event ) : void
{
    if (e.target.currentFrame > 0){
        MovieClip(parent.parent).mc.x = e.target.x;
    }
}

2 个答案:

答案 0 :(得分:1)

我认为empty没有动画,所以你需要使用root的ENTER_FRAME事件代替empty

addEventListener(Event.ENTER_FRAME, onMove); // no "empty."
function onMove(event:Event):void {
    var mc:MovieClip = new SmokeTween();
    mc.x = empty.x;
    mc.y = empty.y;
    mc.rotation = Math.round(Math.random() * 70);
    this.addChild(mc);
}

随着项目变得越来越大,您还会发现回收对象变得很重要(特别是在Flash中)。保留一组SmokeTweens并继续回收它们,而不是创建新的并让它们自行删除。

答案 1 :(得分:0)

实际上我进入了“空”mc并且使用了这段代码,似乎工作正常:

this.addEventListener ( Event.ENTER_FRAME, traceFrame );

function traceFrame ( e : Event ) : void
{
    if (e.target.currentFrame > 0){
        mc.x = e.target.x;
    }
}