如何将拖放功能应用于影片剪辑中的所有帧?动作脚本3

时间:2014-09-09 01:40:06

标签: actionscript-3 drag-and-drop

每个框架包含1个文本字段。我在时间轴上应用代码 但它只会应用于最后一个对象,这意味着我只能拖放最后一个对象。为什么呢?
如何改进这一点以便我可以拖放所有对象?

for(var j:uint=0; j<3; j++)
{

    var q:Ans = new Ans();
    q.stop();
    q.x = j * 300+50;// set position
    q.y = 500;

    var r:uint = Math.floor(Math.random() * q_list.length);
    q.qface = q_list[r];// assign face to card
    q_list.splice(r,1);// remove face from list;
    q.gotoAndStop(q.qface+1);

    q.addEventListener(MouseEvent.MOUSE_DOWN, startAnsDrag);
    q.addEventListener(MouseEvent.MOUSE_UP, stopAnsDrag);
    q.addEventListener(Event.ENTER_FRAME, dragAns);

    addChild(q);// show the card
}


//----------------------------drag
// offset between sprite location and click

var clickOffset:Point = null;
// user clicked
function startAnsDrag(event:MouseEvent) :void
{
    clickOffset = new Point(event.localX, event.localY);
}

// user released
function stopAnsDrag(event:MouseEvent) :void
{
    clickOffset = null;
}

// run every frame
function dragAns(event:Event) :void
{
    if (clickOffset != null) 
    { // must be dragging
        q.x = clickOffset.x+mouseX+135;
        q.y = clickOffset.y+mouseY;
    }
}

1 个答案:

答案 0 :(得分:0)

在时间轴中为您的拖放代码创建一个新图层,您可以从其他动作脚本中删除该图层。将代码放在该层的第一帧上。现在单击并在该层上选择 last 框架,在该框架中您希望代码生效(可能是MovieClip的最后一帧)。按F5绘制将受代码影响的帧范围。瞧!