as3选择框拖动多个子对象



有人能告诉我如何用AS3实现字幕选择效果吗?通过在多个电影周围绘制一个动态矩形来选择多个电影,然后将它们拖放到任何地方?

如果需要拖动多个对象,请不要使用startDrag(),因为它一次只允许拖动一个对象。相反,监听鼠标事件并手动移动:

var oldX:int;
var oldY:int;
var dragging:Boolean = false;
function onMouseDown(evt:MouseEvent):void {
    dragging = true;
    oldX = evt.stageX;
    oldY = evt.stageY;
}
function onMouseMove(evt:MouseEvent):void {
    if (!dragging) return;
    var dX:int = evt.stageX - oldX;
    var dY:int = evt.stageY - oldY;
    for (int i = 0; i < selectedClips.length; i++) {
        var clip:DisplayObject = selectedClips[i];
        clip.x += dX;
        clip.y += dY;
    }
    oldX = evt.stageX;
    oldY = evt.stageY;
}
function onMouseUp(evt:MouseEvent):void {
    dragging = false;
}

此代码假设:

  1. 选定对象的数组称为selectedClips
  2. 所选对象的数组都继承自DisplayObject
  3. 您已经在调用这些函数的MOUSE_DOWNMOUSE_MOVEMOUSE_UP鼠标事件的所有可拖动对象上添加了事件侦听器

如果这三个条件中的任何一个都不满足,请更新我的代码或您的代码以正常工作。此外,如果在放置对象时需要进行任何其他处理,可以使用鼠标向上处理程序添加自定义代码。

最新更新