模块和面板问题

时间:2009-10-26 08:44:46

标签: flex actionscript-3 flex3 flexbuilder

我有以下问题。

在我的应用程序中,我有几个模块,每个模块都有组件CollapsableTitleWindow(扩展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);          
    }

但现在我有类似的东西: 在alt text之前 (来源:ak.bx.pl
alt text之后 (来源:ak.bx.pl

你可以看到它是loos样式声明。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,但这是一个糟糕的实践:

我添加了我的主要应用程序

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

更改模块:

var productWindow:ProductWindow = new ProductWindow();

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

如果有人有更好的解决方案吗?