2010-01-07 91 views
0

這讓我瘋狂。看來我不能在我的AS3代碼中使用ScrollPane,而不會使程序中的每個下拉框崩潰。ScrollPane很奇怪的問題

以下是錯誤消息點擊下拉框,當我得到:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at fl.containers::BaseScrollPane/drawBackground() 
at fl.controls::List/draw() 
at fl.core::UIComponent/drawNow() 
at fl.controls::List/scrollToIndex() 
at fl.controls::SelectableList/scrollToSelected() 
at fl.controls::ComboBox/open() 
at fl.controls::ComboBox/onToggleListVisibility() 

單擊任何一個下拉框時,不管是否引用的ScrollPane已執行的代碼會出現這種情況。真正遲鈍的是我甚至無法聲明一個scrollPane var,而不會導致這些錯誤。 IE:

var x:ScrollPane; 

導致所有下拉菜單中斷。不,我不想在沒有初始化的情況下引用x。使用'new'初始化Scrollpanes會導致相同的問題,以及將任何內容投射到ScrollPane。

爲了解決這個問題,我一直在fla中直接創建scrollpanes,並從AS中引用它們。這不會中斷程序,我可以訪問它們的屬性。他們甚至以這種方式正常工作。

簡而言之,在程序中的任何地方使用'ScrollPane'這個詞將會破壞它。這不僅僅是我的系統。至少有兩個其他開發者正在與我合作。

任何想法?


編輯:

所以淘interweb一段時間後,大多數人都按照以下bhups建議和添加組件添加到庫解決這一問題。我從窗口 - >組件 - > ScrollPane將它添加到我的主窗體中,它確實出現在庫中。它仍然不起作用。我甚至在舞臺上放置了一個實例,以確保它具有所需的所有符號無效。有誰知道任何可能不正確的設置或我可以看到的其他任何設置?如有必要,我會提供任何信息。

回答

2

ScrollPane不屬於ActionScript-3的核心庫,因此在實例化或定義組件類的變量之前,需要將該特定組件添加到庫中。你可以在(FLASH_INSTALL_DIR/LANGUAGE/Configuration/Component Source)和Components(FLASH_INSTALL_DIR/LANGUAGE/Configuration/Components)文件夾中找到組件源。

+0

即使我正在導入fl.containers.ScrollPane,我也需要這樣做嗎?爲什麼是這樣? – Erix 2010-01-07 18:08:12

+0

所以我結束了這樣做,但我仍然有同樣的問題。 – Erix 2010-01-07 22:27:03