2009-10-26 78 views
0

我有以下問題。模塊和麪板問題

在我的應用程序中,我有幾個模塊,每個模塊都有組件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

新增: 我extendes 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 http://ak.bx.pl/stack1.jpg 之前alt text http://ak.bx.pl/stack2.jpg

後你可以看到它的樣式聲明。

+0

有沒有人可以寫點東西 – 2009-10-28 18:06:05

回答

0

我發現了一個解決方案,但它是壞的初步實踐:

我的主要應用

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

添加和模塊中的改變:

var productWindow:ProductWindow = new ProductWindow(); 

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

如果有人有更好的解決方案?