apache-flex 模块和面板问题

o0lyfsai  于 2022-10-31  发布在  Apache
关注(0)|答案(1)|浏览(215)

我有以下问题。
在我的应用程序中,我有几个模块,每个模块都有组件CollapsableTitleWindow(extends Panel)。打开窗口后,它会被添加到主应用程序的容器(CollapsableTitleWindowContainer)中。在这些窗口中,你可以打开另一个窗口(依此类推)。
现在,问题是什么。当我改变(重新加载)任何模块,我想打开一个新的窗口(子窗口)与已加载的窗口,我得到这个错误:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
 at mx.containers::Panel/layoutChrome()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\containers\Panel.as:1405]
 at com::CollapsableTitleWindow/layoutChrome()[D:\Flex 3 Workspace\WesobCrm\src\com\CollapsableTitleWindow.as:216]
 at mx.core::Container/updateDisplayList()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2867] (...)

表示主应用程序有对象面板

请帮帮忙。
P.S.我在http://www.nabble.com/Flex-Module-issue-with-Panel-td20168053.html上发现了类似的问题
我扩展了Panel类,并做了如下操作:

override protected function layoutChrome(unscaledWidth:Number, unscaledHeight:Number):void
    {
        use namespace mx_internal;
        if(!(mx_internal::titleBarBackground is TitleBackground)) {
            mx_internal::titleBarBackground = new TitleBackground();
        }
        super.layoutChrome(unscaledWidth, unscaledHeight);          
    }

但现在我有了这样的东西:

之前
(来源:ak.bx.pl


之后
(来源:ak.bx.pl
您可以看到它丢失卢什样式声明。

sirbozc5

sirbozc51#

我找到了一个解决办法,但它是坏的做法:
我在主应用程序中添加

public function getProductWindow():ProductWindow {
    return new ProductWindow();
}

并在模块中更改:
起始日期

var productWindow:ProductWindow = new ProductWindow();

结束日期

var productWindow:ProductWindow = Application.application.getProductWindow();

是否有人有更好的解决办法?

相关问题