FlexLib Windowshade和Flex 4

时间:2011-09-27 15:31:27

标签: actionscript-3 flex4

我正在尝试在Flex 4中构建一个可折叠的面板。我以为我会使用这样的东西:

<s:Panel
    width="100%">

    <s:controlBarContent>

            <flexlib:WindowShade
                width="100% />

    </s:controlBarContent>

</s:Panel>

但是这会引发错误:在非构造函数上尝试实例化。我为flex 4抓住了flexlib zip,但我仍然遇到了这个错误。

是否有另一种方法可以在控制栏中创建可折叠面板?

感谢您的任何提示!

1 个答案:

答案 0 :(得分:2)

您需要为WindowShade组件定义标题渲染器或标题类。 查看发生此异常的代码  例外是:

TypeError: Error #1007: Instantiation attempted on a non-constructor.
at flexlib.containers::WindowShade/createOrReplaceHeaderButton()[...\src\flexlib\containers\WindowShade.as:258]

抛出异常的代码就是这个

        if(_headerRenderer) {
            _headerButton = _headerRenderer.newInstance() as Button;
        }
        else {
            var headerClass:Class = getStyle("headerClass");
           _headerButton = new headerClass();
        }

if(_headerRenderer) { _headerButton = _headerRenderer.newInstance() as Button; } else { var headerClass:Class = getStyle("headerClass"); _headerButton = new headerClass(); } 您需要定义headerClass或headerRenderer。 出于测试目的,我使用了

它就像一个魅力:)

玩得开心,祝你好运。