Flash Actionscript 3中的双拖动功能

Flash Actionscript 3中的双拖动功能,flash,actionscript,double,drag,slide,Flash,Actionscript,Double,Drag,Slide,我有两个电影唇,一个垂直拖动,另一个水平拖动。 如果我滑动水平movieclip,我希望垂直movieclip也垂直拖动(如菜单)。我尝试过在一个拖动函数中加入两个拖动函数,但都不起作用。有人能帮我吗 menu0.bar1.thumbnail1.addEventListener(MouseEvent.MOUSE_DOWN, startdrag1) stage.addEventListener(MouseEvent.MOUSE_UP, stopdrag1) function startdrag1

我有两个电影唇,一个垂直拖动,另一个水平拖动。 如果我滑动水平movieclip,我希望垂直movieclip也垂直拖动(如菜单)。我尝试过在一个拖动函数中加入两个拖动函数,但都不起作用。有人能帮我吗

menu0.bar1.thumbnail1.addEventListener(MouseEvent.MOUSE_DOWN, startdrag1)
stage.addEventListener(MouseEvent.MOUSE_UP, stopdrag1)

function startdrag1 (e:MouseEvent)
{
    menu0.addEventListener(MouseEvent.MOUSE_DOWN, startdrag)
    menu0.removeEventListener(MouseEvent.MOUSE_DOWN, startdrag)

    //Horizontal dragging menu
    menu0.bar1.thumbnail1.startDrag(false, new Rectangle(0,125,-1380,0));

    //Vertical dragging menu
    menu0.startDrag(false,new Rectangle(0,93,0,-1125));

}
function stopdrag1 (e:MouseEvent)
{
    menu0.bar1.thumbnail1.stopDrag();
    menu0.addEventListener(MouseEvent.MOUSE_DOWN, startdrag)
    menu0.bar1.stopDrag();
}
它只会水平拖动,但菜单不会拖动。
(缩略图在菜单中,脚本在菜单之外)

你应该重写一个拖动功能,这不是很痛苦。 我真的不理解你的符号,所以让我们假设我们有两个剪辑:

var verticalClip:Sprite = new Sprite();
var horizontalClip:Sprite = new Sprite();
当水平拖动第二个时,您希望第一个垂直移动

horizontalClip.addEventListener(MouseEvent.MOUSE_DOWN, hMouseDown);

private function hMouseDown(e:MouseEvent):void
{
    stage.addEventListener(MouseEvent.MOUSE_MOVE, hMouseMove);
    stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUp);
}

private function hMouseMove(e:MouseEvent):void
{
    horizontalClip.x = stage.mouseX;
    verticalClip.y = stage.mouseX; //you may want to add some limits and offsets here
}

private function stageMouseUp(e:MouseEvent):void
{
    stage.removeEventListener(MouseEvent.MOUSE_MOVE, hMouseMove);
}

如果希望verticalClip也可以拖动,仍然可以使用startdrag。或者,如果您需要一些更复杂的行为(例如在拖动垂直剪辑时移动水平剪辑),只需模仿前面的代码即可。

您是否尝试在拖动另一个剪辑时不拖动该剪辑?startdrag函数在哪里?@Enigmadan,它是Sprite上的本机函数;)