0
我們有大的組件可以繪製。現在我們遇到了性能問題。我們使用visible和includeinlayout屬性來隱藏一些組件,但它們仍然由flex呈現。避免繪製隱藏的組件(FLEX)
有沒有可能避免?!
它是唯一可能的,如果我們從顯示列表中刪除組件,或者我們可以以某種方式重寫組件的繪製方法,並檢查它是否隱藏或取決於它將被繪製或不。
我們有大的組件可以繪製。現在我們遇到了性能問題。我們使用visible和includeinlayout屬性來隱藏一些組件,但它們仍然由flex呈現。避免繪製隱藏的組件(FLEX)
有沒有可能避免?!
它是唯一可能的,如果我們從顯示列表中刪除組件,或者我們可以以某種方式重寫組件的繪製方法,並檢查它是否隱藏或取決於它將被繪製或不。
無論您不想繪製什麼組件,請將任何基於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();
}
}
我會說你應該嘗試覆蓋updateDisplayList()方法,並跳過任何登錄的情況下「可見「== false; –
爲什麼不從顯示列表中刪除它們?它可以節省內存。 – alxx
你試過我的答案嗎?我使用它是出於同樣的理由,你抱怨和完美的作品。 –