我有以下问题。
在我的应用程序中,我有几个模块,每个模块都有组件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);
}
但现在我有类似的东西:
在之前
(来源:ak.bx.pl)
在之后
(来源:ak.bx.pl)
你可以看到它是loos样式声明。
答案 0 :(得分:0)
我找到了一个解决方案,但这是一个糟糕的实践:
我添加了我的主要应用程序
public function getProductWindow():ProductWindow {
return new ProductWindow();
}
更改模块:
这
var productWindow:ProductWindow = new ProductWindow();
要
var productWindow:ProductWindow = Application.application.getProductWindow();
如果有人有更好的解决方案吗?