2012-11-30 39 views
0

我們有大的組件可以繪製。現在我們遇到了性能問題。我們使用visible和includeinlayout屬性來隱藏一些組件,但它們仍然由flex呈現。避免繪製隱藏的組件(FLEX)

有沒有可能避免?!

它是唯一可能的,如果我們從顯示列表中刪除組件,或者我們可以以某種方式重寫組件的繪製方法,並檢查它是否隱藏或取決於它將被繪製或不。

+0

我會說你應該嘗試覆蓋updateDisplayList()方法,並跳過任何登錄的情況下「可見「== false; –

+0

爲什麼不從顯示列表中刪除它們?它可以節省內存。 – alxx

+0

你試過我的答案嗎?我使用它是出於同樣的理由,你抱怨和完美的作品。 –

回答

1

無論您不想繪製什麼組件,請將任何基於SkinnableContainer的容器放入creationPolicy =「none」(不要爲我自動創建我的孩子)。然後稍後...如果當你想要flex來創建這些組件,你可以這樣做:

// here frame is my container with creationPolicy="none" set on it 
public function update():void{ 
if(frame && !frame.deferredContentCreated){ 
    frame.createDeferredContent(); 
} 
}