我正在尝试在Flex 4中构建一个可折叠的面板。我以为我会使用这样的东西:
<s:Panel
width="100%">
<s:controlBarContent>
<flexlib:WindowShade
width="100% />
</s:controlBarContent>
</s:Panel>
但是这会引发错误:在非构造函数上尝试实例化。我为flex 4抓住了flexlib zip,但我仍然遇到了这个错误。
是否有另一种方法可以在控制栏中创建可折叠面板?
感谢您的任何提示!
答案 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。
出于测试目的,我使用了
它就像一个魅力:)
玩得开心,祝你好运。