代码之家  ›  专栏  ›  技术社区  ›  Erix

很奇怪的滚动窗格问题

  •  0
  • Erix  · 技术社区  · 15 年前

    这把我逼疯了。似乎我不能在as3代码中的任何地方使用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变量,除非它导致这些错误。这就是:

    var x:ScrollPane;
    

    导致所有下拉列表中断。不,我不会不初始化就引用x。使用“new”初始化滚动窗格会导致同样的问题,也会将任何内容强制转换为滚动窗格。

    为了解决这个问题,我一直在fla中直接创建滚动窗格,并从as引用它们。这不会破坏程序,我可以访问它们的属性。他们甚至可以这样工作。

    简而言之,在程序的任何地方使用“scrollpane”这个词都会破坏它。这也不只是我的系统。这至少发生在我工作的另外两个开发人员身上。

    有什么想法吗?


    编辑:

    因此,在浏览interweb一段时间后,大多数人都在通过遵循下面的bhups建议并将组件添加到库中来解决这个问题。我正在从“窗口”->“组件”->“滚动窗格”将其添加到主fla中,它确实显示在库中。还是不行。我甚至在舞台上放了一个例子,以确保它拥有所有它需要的符号,但都没有用。是否有人知道任何可能不正确的设置或其他我可以看到的设置?必要时我会提供任何信息。

    1 回复  |  直到 14 年前
        1
  •  2
  •   bhups    15 年前

    scrollpane不属于actionscript-3的核心库,因此在实例化或定义组件类的变量之前,需要将该特定组件添加到库中。您可以在(flash_install_dir/language/configuration/component source)和(flash_install_dir/language/configuration/components)文件夹中找到组件源代码。