ActionScript3.0 DragAndDrop与parent.addChild(this);

时间:2012-08-05 00:22:02

标签: actionscript-3 flash

这是我的代码:

package net.draganddrop
{
import flash.display.MovieClip;
import flash.event.MouseEvent;

public function object extends MovieClip
{
public function object()
{
buttonMode = true;
addEventListener(MouseEvent.MOUSE_DOWN, down);
}
protected function down(event:MouseEvent):void
{
parent.addChild(this);// I HAVE A PROBLEM WITH THIS CODE
startDrag();
}
}
}

代码parent.addChild(this);假设将对象放在另一个对象的顶部,就像将它移到其他对象的前面一样,但是当我放入该代码并开始拖动时,它也会在拖动它时多次复制对象。当我拖动它时,我不知道任何其他代码可以使对象在其他对象面前。请帮助!

2 个答案:

答案 0 :(得分:0)

尝试:

parent.setChildIndex(this,parent.numChildren-1);

parent.addChildAt(this,parent.numChildren-1);

答案 1 :(得分:0)

据我所知,对象复制了自己并且你正在拖拽所有对象。所以请给我们更好的解释。如果这是你必须使用stopDrag的问题,那么当你按下按钮时会忘记startDrag方法,但是当你释放按钮时它仍会运行。

要停止你必须添加一些小代码,所以在这里。

也必须是:

public class object extends MovieClip not public function object extends MovieClip

试试这段代码:

package net.draganddrop
{
     import flash.display.MovieClip;
     import flash.event.MouseEvent;

     public class object extends MovieClip
     {
         public function object()
         {
             buttonMode = true;
             addEventListener(MouseEvent.MOUSE_DOWN, down);
             addEventListener(MouseEvent.MOUSE_UP, up);
         }
         protected function up(event:MouseEvent):void
         {
             stopDrag();
         }
         protected function down(event:MouseEvent):void
         {
             parent.addChild(this);
              startDrag();
         }
     }
}