編輯:如果我有一個名爲Items的類,它有一個從url加載的movieclip實例。項目上的startDrag失敗。如果Items包含我們從SWC啓動的一個movieclip(不加載它),則Drag工作正常。拖動不工作繼承自Moviclip的自定義類
現在如何解決這個問題,我有一個類,它有一個從外部加載的movieClip。
我有以下代碼:
包{ 進口flash.display.Sprite; import flash.events.MouseEvent;
import lib.CustomEvents.ItemLoadCompleteEvent;
import lib.Room.Item;
import lib.Room.ItemStruct;
public class DragTest extends Sprite
{
private var itemInstance:Item;
public function DragTest()
{
var tempItemStruct:ItemStruct = new ItemStruct("test",0,0,200,250,"wall","","inventory");
itemInstance = new Item(tempItemStruct);
itemInstance.addEventListener(ItemLoadCompleteEvent.CONTROL_TYPE,loadComplete);
stage.addEventListener(MouseEvent.MOUSE_UP,mouseUp);
}
private function loadComplete(e:ItemLoadCompleteEvent):void
{
itemInstance.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
this.addChild(itemInstance);
}
private function mouseUp(e:MouseEvent):void
{
itemInstance.stopDrag();
trace("MouseUp");
}
private function mouseDown(e:MouseEvent):void
{
itemInstance.startDrag();
trace("MouseDown");
}
}
}
我用一個正常的剪輯使用相同的代碼,它的工作原理。當我用我自己定義的項目它不起作用。這裏是細節。
itemStruct:包含要製作的項目的屬性。 item:加載itemstruct定義的項目並將其放入movieclip(項目從movieclip繼承)
上述代碼的跟蹤顯示只有mouseUp函數工作時mouseDown不起作用。雖然相同的代碼工作正常進行簡單的影片剪輯
我已經嘗試
stage.addEventListener(MouseEvent.MOUSE_DOWN,mouseDown);
編輯:我曾嘗試把鼠標按下舞臺上再次,如果我點擊該項目並拖動之外的階段,既鼠標按下和起來似乎工作。但是,如果我點擊該項目並拖動。仍然沒有運氣。我還在舞臺上將該項目添加爲動畫片段。
我已經讓它工作了,但仍然需要一個解決方案,將movDipl的parentClass上的mouseDown連接起來。它仍然在直接運動剪輯本身。 – 2010-05-06 17:36:18