2010-01-07 88 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