2010-12-22 66 views
2

Adob​​e建議在Flex Hero移動應用中將皮膚和ItemRenderer用於ActionScript。我的印象是MXML被編譯爲ActionScript。MXML和ActionScript for mobile的真正區別是什麼?

  1. 當我在MXML中聲明一個組件時,到底發生了什麼?

  2. as3創建的對象和MXML創建的對象究竟有什麼不同?

  3. 如果我將MXML組件轉換爲as3類(即添加每個子項並在代碼中手動設置每個子項的每個屬性而不是聲明式MXML語法),我是否獲得了任何東西?

(目前我沒有實際設備上測試,並使用MXML itemRenderer的與數百個項目的名單時,有我的桌面計算機上不會降低性能。)

回答

7
  1. 當我在MXML中聲明組件時,幕後究竟發生了什麼?

你照顧正確。 MXML被編譯成ActionScript。您可以使用keep編譯器參數來查看此ActionScript。它可以變得相當複雜。用手寫的代碼更優雅。我想這就是爲什麼Adobe告訴我們使用移動皮膚的AS。

  1. 究竟是由什麼AS3創建的對象 和那些 MXML創造之間的區別是什麼?

如果您的意思是記憶中的物體,則沒有區別。 MXML組件就像ActionScript組件一樣是類。但是,如果您使用MXML生成ActionScript,那麼運行的實際組件具有不同的代碼庫。

  1. 如果我轉換MXML組件爲AS3類(即添加的每個孩子 和代碼,而不是在 聲明MXML語法手動設置每個孩子 每個屬性)我在獲得 什麼?

您對組件的工作和操作方式有更精確的控制。我寫了InsideRIA上一篇關於這個確切的話題:http://insideria.com/2010/05/7-reasons-to-write-in-actionsc.html

(目前我沒有實際 設備上測試,並使用MXML itemRenderer的時候有我的桌面 電腦上沒有 性能下降 爲數百個項目的列表。)

作爲一個澄清的事情,你意識到基於列表的類只呈現屏幕上的內容,對吧?因此,即使您的列表中有數百個項目,它很可能只會一次顯示5-10個。這意味着只有5-10個渲染器被創建。滾動列表是模擬的,不是真實的。渲染者只是改變他們的數據。無論如何,我試圖提出的一點是,一個包含數百個項目的列表應該與具有十個項目的列表或具有一千個項目的列表一樣有效。我希望你會在桌面和設備上看到非常不同的性能。

+0

謝謝。好文章。 – yclevine 2010-12-22 16:44:44

相關問題