0

这是我的代码:

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); 假设将对象放在另一个对象的顶部,就像将它移动到其他对象的前面一样,但是当我放置该代码并开始拖动它时,它也会复制该对象的次数与拖动它的次数一样多。当我拖动它时,我不知道有任何其他代码可以使对象出现在其他对象的前面。请帮忙!

4

2 回答 2

0

据我了解,对象复制本身,您正在拖动所有对象。所以请给我们更好的解释。如果这是您必须使用 stopDrag 的问题,因为当您按下按钮时 startDrag 方法将启动,但当您释放按钮时它仍会运行。

为了阻止这种情况,您必须添加一些小代码,所以就在这里。

它还必须是:

公共类对象扩展了 MovieClip 不是公共函数对象扩展了 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();
         }
     }
}
于 2012-08-05T15:35:01.563 回答
0

尝试 :

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

或者

parent.addChildAt(this,parent.numChildren-1);
于 2012-08-05T00:23:28.457 回答