2011-09-10 81 views
0

我有一棵樹,我可以使用拖放來安排節點,我的程序會拋出空指針異常。當我看到跟蹤時,錯誤實際上是在覈心庫中,而不是在我的代碼中。有誰知道這個意思嗎?ActionScript拖放類型錯誤:錯誤#1009

TypeError: Error #1009: null のオブジェクト參照のプロパティまたはメソッドにアクセスすることはできません。 at mx.controls.listClasses::ListBase/hideDropFeedback()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\listClasses\ListBase.as:8619] at mx.controls::Tree/dragDropHandler()[E:\dev\4.5.1\frameworks\projects\mx\src\mx\controls\Tree.as:3328] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.core::UIComponent/dispatchEvent()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\core\UIComponent.as:13128] at mx.managers.dragClasses::DragProxy/_dispatchDragEvent()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:374] at mx.managers.dragClasses::DragProxy/mouseUpHandler()[E:\dev\4.5.1\frameworks\projects\framework\src\mx\managers\dragClasses\DragProxy.as:599]

當我開始拖動一個節點(至少一個像素或兩個)時,會發生異常。我有這個初始化,然後我編程地添加孩子

 eventsTree.dragEnabled=true; 
     eventsTree.dropEnabled=true; 
     eventsTree.dragMoveEnabled=true; 
     eventsTree.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, itemDoubleClickHandle 
     eventsTree.addEventListener(DragEvent.DRAG_DROP, dragDropHandler); 
     eventsTree.addEventListener(ListEvent.ITEM_CLICK,itemClickListener) 
     loadTreeContents(); 

回答

2

評估爲null的對象可以沒有任何屬性。這個錯誤可能發生在一些意想不到的情況下(儘管有效)。例如,考慮下面的代碼,它創建一個Sprite對象。由於此Sprite對象從不添加到顯示列表(通過DisplayObjectContainer對象的addChild()方法),因此其stage屬性設置爲null,因此其stage屬性不能具有任何屬性。所以代碼生成errror:import flash.display.Sprite;

var sprite1:Sprite = new Sprite(); var q:String = sprite1.stage.quality;

我可以建議您嘗試兩種已知的修復方法。

  • 確保腳本在加載對象或動畫中的框架到達後運行。
  • 檢查您的定位

也許重新編排的代碼呢?

eventsTree.addEventListener(ListEvent.ITEM_DOUBLE_CLICK, itemDoubleClickHandle); 
    eventsTree.addEventListener(DragEvent.DRAG_DROP, dragDropHandler); 
    eventsTree.addEventListener(ListEvent.ITEM_CLICK,itemClickListener); 
    eventsTree.dragEnabled=true; 
    eventsTree.dropEnabled=true; 
    eventsTree.dragMoveEnabled=true; 
    loadTreeContents(); 

希望這可以幫助你。

P.S記住分號並關閉括號。

參考文獻:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/runtimeErrors.html

http://curtismorley.com/2007/08/15/flash-cs3-flex-error-1009-cannot-access-a-property-or-method-of-a-null-object-reference/

+0

感謝您的意見我也會看看這個 –

+0

不用擔心,希望它的作品。 – tushar747