Actionscript 3 as3选框选择并拖动多个子对象
有谁能告诉我如何使用AS3实现字幕选择效果,通过在多个电影剪辑周围绘制一个动态矩形,然后将其拖放到任意位置来选择多个电影剪辑 如果需要拖动多个对象,不要使用Actionscript 3 as3选框选择并拖动多个子对象,actionscript-3,flash,Actionscript 3,Flash,有谁能告诉我如何使用AS3实现字幕选择效果,通过在多个电影剪辑周围绘制一个动态矩形,然后将其拖放到任意位置来选择多个电影剪辑 如果需要拖动多个对象,不要使用startDrag(),因为它一次只允许拖动一个对象。相反,请侦听鼠标事件并手动执行移动操作: var oldX:int; var oldY:int; var dragging:Boolean = false; function onMouseDown(evt:MouseEvent):void { dragging = true;
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;
}
var oldX:int;
变量oldY:int;
变量拖动:布尔值=false;
mousedown函数(evt:MouseEvent):void{
拖动=真;
oldX=evt.stageX;
oldY=evt.stageY;
}
mouseMove函数(evt:MouseEvent):void{
如果(!拖动)返回;
var dX:int=evt.stageX-oldX;
变量dY:int=evt.stageY-oldY;
对于(int i=0;i
此代码假定:
selectedClips
DisplayObject
鼠标向下
、鼠标移动
、和鼠标向上
鼠标事件如果不满足这三个条件中的任何一个,请更新我的代码或您的代码以使其正常工作。此外,如果在删除对象时需要进行任何其他处理,则可以使用鼠标向上处理程序添加自定义代码。您需要的答案的详细程度如何?从高级视图中,跟踪鼠标初始向下点,然后在鼠标向下和下一个鼠标之间的每一帧绘制/重画一个矩形,使其与当前鼠标位置和初始鼠标位置相匹配。鼠标向上移动时,检测矩形中包含的所有适用movieclips-将该列表暂时存储在某个位置。添加一些逻辑来处理当列表中的一个mc被鼠标按下时。然后开始拖动它们。@LondonDruges\u MediaServices感谢回复,已经完成了矩形部分,将hitTestObjects存储在一个数组中,但在数组中任何一个mc上的鼠标向下移动只会拖动该特定mc,而不是另一个mc。临时将所有要移动到另一个MovieClip中的剪辑转移到另一个MovieClip并拖动该剪辑。或者,不要真正执行startDrag()类型的拖动。相反,根据鼠标的增量调整x和y。