我在過去兩年在某些桌面應用上使用flex。到目前爲止,我從未遇到任何與性能相關的問題,但今天,當我們完成iPad的移動應用程序時,我面臨着一個挑戰,iPad的應用程序非常慢。什麼可能會減慢我的Flex移動應用程序?
http://i.stack.imgur.com/qkbWn.png
慢,意味着當我在菜單中按一個按鈕來改變SPLITVIEW我必須等待像5秒。然後滾動速度真的很慢,只有不到一個fps,我的TextInput開始出錯(文本不在他的盒子裏)。
我開始閱讀大量的博客文章和介紹有關優化移動平臺,然後我重寫了一些我用的組件。例如,我刪除了SkinnableContainer,並將其替換爲包含一些基於actionScript的繪圖的VGroup。
現在你看到的是一個包含了一些其他VGroup(標題爲這裏的組)和VGroup(暗灰色的),那麼每個插件是一個標籤和一個Widget的HGroup。我只使用Label和TextInput作爲文本。
對於其中只有4個文本小部件的另一個頁面,或者只有帶有自定義項目渲染器的列表的其他頁面,每個行都是4個集合的創建時間甚至很慢(創建視圖的幾秒鐘)標籤。
整個事情是有線與Robotlegs的,有沒有什麼特別的,一個車型在視圖中注入一開始我設置一個成員變量的觀點與此對象綁定我的變量。
坦率地說,現在我的想法是:它的氣味腥,因爲如果我所做的一切權利就不可能有如此低的表現,認爲flex是在移動平臺上的競爭力。所以現在我試圖逐個禁用應用程序來嘗試找到可能會減慢速度的東西。我有幾個嫌疑人要檢查,比如我有一些有約束力的警告來檢查,然後看看robotlegs是否已經解決了問題。
所以我在這裏主要的問題是你怎麼想,你可以有關於一些想法「是有問題」和「如何解決它」。
感謝
不幸的是,這個問題太模糊,無法回答。我認爲你需要一個正式的代碼審查來獲得有用的東西。已知Flex [和Flash]在移動設備上不是很好。我想我聽說Robotlegs在移動設備上引入了其他問題。它需要做的事情是在每次視圖更改時重新創建視圖,並且Robotlegs重新執行所有初始化內容。這可能很耗時間;但我會從一個真正簡單的東西開始(比如單個視圖/按鈕),然後慢慢添加東西以查看導致減速的原因。 – JeffryHouser 2012-02-04 14:02:32
這是我今天下午計劃的。我知道我的問題有點含糊,但以防萬一有人有想法。感謝您的支持。 – Whirly 2012-02-04 15:30:07
我的Flash手機遊戲有性能問題,我通過簡化圖形來解決。但它看起來不像你有任何截圖中的複雜圖形。 – JeffryHouser 2012-02-04 16:18:30