回答
雖然我不同意上司的評價,這是相當有據可查的,我認爲你只是缺少「無效」和「驗證」方法之間的總體關係。基本上,只要您撥打電話無效出頭,無論是顯示列表,大小或屬性,那麼所有你做的是告訴它設置一個布爾標誌爲那些之一(任何時間修改,將修改屬性當設置寬度被調用時,它們中的任何一個都會調用適當的無效方法,如invalidateProperties)。當下一個輸入幀/渲染髮生時,它將檢查標誌,如果其中任何一個設置爲無效,則調用相應的驗證方法(updateDisplayList,commitProperties,measure)。
要在FB/Eclipse中查看自己的代碼,請按Ctrl + Shift + T並拉起UIComponent,一旦打開UIComponent.as並按下Ctrl + O,然後鍵入validateNow,就可以看到方法體是1行,一個很好的ASDoc評論解釋了它的功能。更好的是,你會看到它在ILayoutManager上調用validateClient,彈出打開LayoutManager(再次按Ctrl + Shift + T)查看validateClient,它基本上解釋了我在這裏所做的。
我認爲這是你來自的地方,因爲我也曾經在那艘船上,不理解更新屬性和它影響它的兄弟姐妹/父母/孩子之間的關係,但它是減少處理負載的關鍵,因爲屬性可以在幀刷新之間多次修改,並且不需要重新計算它周圍的所有內容,直到實際重繪爲止。
問題是,有時您想要修改屬性並立即(即在下一行執行)能夠看到它的副作用如何修改佈局的其他部分,在這種情況下,您可以調用validateNow( )修改屬性後強制它立即更新所有這些,即使它可能發生多次重繪之前發生。這通常不是一個好的做法,因爲它通常意味着不期望的CPU時間被浪費,但有時它是最簡單的選擇。
真棒回覆。謝謝。 – TrexTroy
沒問題,我很高興我正確地點了點。如果我說明了任何錯誤信息,任何人都可以隨時告訴我,但我儘可能地儘量回覆我的答案。 – shaunhusain
- 1. JSF生命週期(驗證)
- 2. angular2組件生命週期
- 3. MXML組件生命週期
- 4. JSF生命週期以驗證結束
- 5. Hibernate驗證器 - 根據生命週期可選驗證
- 6. 兒童組件的生命週期
- 7. react-navigation和組件生命週期
- 8. React組件生命週期API請求
- 9. Ractive組件的生命週期
- 10. Flex自定義組件生命週期
- 11. React組件生命週期雙渲染
- 12. Flex中的UI組件生命週期
- 13. UIControl.frame屬性的生命週期和有效性
- 14. Silverlight控件生命週期
- 15. 微件生命週期?
- 16. WinForms事件生命週期
- 17. WCF生命週期事件
- 18. 組件生命週期中的問題/無法處理undefined
- 19. 柔性的cheatsheet的生命週期方法和覆寫投放UIComponent功能
- 20. JSF2生命週期和內置的驗證
- 21. Strongloop回送驗證和請求生命週期
- 22. 驗證Jpa實體:服務中或生命週期監聽器
- 23. Jsf生命週期 - 驗證失敗後呈現響應
- 24. JSF生命週期:跳過驗證並更新模型
- 25. 使用AspNet.Security.OpenIdConnect.Server(ASP.NET vNext)進行自定義生命週期驗證
- 26. 如何禁用M2E生命週期驗證
- 27. JSF生命週期過程驗證階段
- 28. maven安裝生命週期不會執行驗證
- 29. servlet生命週期
- 30. JUnit生命週期
[Flex中用戶界面組件的生命週期(http://stackoverflow.com/questions/6357543/ui-component-life-cycle-in-flex)或[有效化和無效撓曲](HTTP的可能重複: //www.stackoverflow.com/questions/3103014/validation-and-invalidation-in-flex) –
在你感到困惑之前,你做了什麼來研究這個話題?如果您進行一些搜索,則有大量文檔,博客文章,演示文稿和有關此主題的示例。您如何打開一些Flex框架代碼,放入斷點並弄清楚。 – JeffryHouser