2011-11-23 136 views
0

我在Flash Professional CS5項目和ActionScript 3NativeDragEvent不能正常工作?

我有,我可以在屏幕上拖動(tile1-tile5,並將其拖放到任意五個不同的地方(SLOT1-slot5)的各種對象。這工作沒有問題半點。所有這些代碼放在了tile1-tile5第一個關鍵幀。

不過,我需要使用NativeDragEvent.NATIVE_DRAG_ENTER和NativeDragEvent.NATIVE_DRAG_EXIT。我的代碼如下。它被放置在此示例中,第一個關鍵幀爲slot1。

slot1.addEventListener(NativeDragEvent.NATIVE_DRAG_OVER, slot1enter); 
slot1.addEventListener(NativeDragEvent.NATIVE_DRAG_EXIT, slot1exit); 

function slot1enter(evt:NativeDragEvent):void { 
    trace("Drag entered."); 
} 

function slot1exit(evt:NativeDragEvent):void{ 
    trace("Drag exit."); 
} 

這裏發生了什麼?我怎樣才能使這個工作?

+0

它適用於我,所以它看起來像你將不得不詳細說明一些。什麼是插槽?他們在哪裏定義?據推測,由於您在Flash Pro中工作,所以他們是MovieClip,但明確聲明不會造成傷害。另外,你是否嘗試過定義一個Slot類並在其中添加事件監聽器?我的意思是,這就是你最終最終應該做的事情;儘管我並不是說這就是解決方案,因爲它也應該能夠解決您目前的問題。 – merv

+0

我可能只需要完全放棄這個方法,因爲我意識到我需要這個工作來進出空氣。嘆。謝謝,壽。 – CodeMouse92

+0

太糟糕了。作爲一個方面說明,** Flex **中的InteractiveObject的實現包含一個非AIR的DragEvent。當然,這意味着使用Flex SDK,這意味着額外的加載時間,爲您的項目增加了複雜性等等。無論如何,只是拋出它作爲另一種選擇,即使它可能不是你會考慮如果你'已經很好地融入了一個項目。祝你好運。 – merv

回答

0

這裏有一個混淆。我使用Flash中的內置startDrag拖動交互式元素。但是,NativeDragEnter和NativeDragExit僅適用於操作系統拖動,因此這是蘋果和橘子。一個不會與另一個工作。

1

NativeDragEvent僅適用於AIR運行時。

確保您的Flash Pro發佈針對AIR運行時。

+0

它已經是,謝謝。 – CodeMouse92