2012-08-05 96 views
0

這裏是我的代碼:ActionScript3.0 DragAndDrop with parent.addChild(this);

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(本);假設將對象放在另一個對象的頂部,就像將其移動到其他對象的前面一樣,但是當我放入該代碼並且我開始拖動它時,也會重複拖動對象的次數。當我拖動它時,我不知道任何其他可以將對象放在其他對象前面的代碼。請幫忙!

回答

0

嘗試:

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

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

我想這兩個代碼,但它仍然重複。 – 2012-08-05 01:24:21

+0

您是否正在創建「object」的新實例,如new object();別的地方?你顯示的代碼不應該複製對象。 – 2012-08-05 03:01:05

0

據我瞭解的對象複製本身和你draging的所有對象。所以請給我們更好的解釋。如果這是你必須使用stopDrag的問題,那麼當你按下你的按鈕時startDrag方法將會啓動,但是當你釋放你的按鈕時它仍然會運行。

要停止,你必須添加一些小代碼,所以它在這裏。

而且它必須是:

公共類對象擴展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(); 
     } 
    } 
} 
相關問題