2014-07-21 51 views
0

爲什麼invalidateProperties(),invalidateSize()invalidateDisplayList()方法在Adobe Flex/Air中擴展組件時做過?當在Adobe Flex/Air中擴展組件時,爲什麼invalidateProperties(),invalidateSize()和invalidateDisplayList()?爲什麼這些都是必要的?

爲什麼這些都是必要的?

+0

「are did」?你什麼意思?你需要以某種方式實現這些,或者......?至於它們存在的原因,請參閱以下文檔:http://help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/mx/core/IInvalidating.html – Pimgd

+0

are did =他們在擴展控件的過程中的工作在flex中。 –

回答

1

根據documentation,這些函數在更新和渲染顯示列表之前發信號通知flex/flash調用另一個函數。這個「其他函數」似乎用於驗證(如果它們不正確,可能會更改這些值)。所以通過調用一個無效函數,你強制重新計算。或換句話說,重繪。這刪除了任何遺留圖形工件。

這是我通過文檔的解釋。也許有更多經驗的人可以建立在我的答案上。

0

所有這些組件都基於RENDER事件,因此無論它們經歷多少更改(例如:x,y,寬度等),它們每幀只能繪製一次。但是爲了讓每個組件觸發RENDER事件,必須在每個組件的基礎上調用和分析stage.invalidate()。所有組件無效方法允許您通過隱藏RENDER事件步驟或在其他情況下通過啓動RENDER事件工作流來強制重繪組件。

相關問題