發表文章

Unload Flex Module Completely?

Flex內部有提供Module的機制,透過Module的設計,可以把主程式切分成幾個swf,然後在需要的時候才去動態 loading和 instantiated,這樣作理論上可以調控網路使用量和記憶體使用量...可是... 這個機制加載時沒問題(目前),但是移除(unload)時卻是問題重重,最大的問題就是,移除掉module後原本佔用的記憶體永遠不會被釋放, 爬了很多文,發現有一些work around的撇步 ,稍微試了一下結果還是行不通: What We Know About Unloading Modules   Unloading modules completely, MXML   問題的關鍵應該是Flex內部有某些物件始終cache住讀進來的 module的 reference,導致即使表面上以為刪除,但實際上卻永遠不會被垃圾蒐集。時間關係,目前先不考慮用Module來做想要的功能了。

C++版的Tweener : cppTweener

根據短期內開發C++ GUI的經驗,不知道什麼原因,C++的GUI 開發似乎不是很流行類似Tweener ( http://labs.zeh.com.br/blog/?p=95 ) 這樣的工具。在開發Flash專案的時候,有tween沒tween的GUI,效果真是天差地遠,要做流暢的介面始終少不了這類的工具。 曾經用過的Qt framework (open source版)有內建類似的工具,不過在Qt中該工具的設計和內建的function數量,與任一個Flash的 Tweening library比起來還是差多了,甚至最近在測試的兩個3D Engine裡也都沒有這種工具的蹤影。 最近在開發專案的時候,再搜尋了一次,這次發現有人把Tweener porting到c++版了: cpptweener  , 在該project首頁可以找到簡單的教學和demo video。port到C++以後,架構上做了一點更動,整個工具調整成單純是做數學運算,所以也就不依賴任何的GUI framework,只要標準的C++ Standard Library就可以用了。

[Android] 偵測screen size的方法

Configuration conf = this.getResources().getConfiguration(); if((conf.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL){ Toast.makeText(getBaseContext(), "SCREENLAYOUT_SIZE_SMALL" , Toast.LENGTH_LONG).show(); } else if((conf.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL){ Toast.makeText(getBaseContext(), "SCREENLAYOUT_SIZE_NORMAL" , Toast.LENGTH_LONG).show(); } else if((conf.screenLayout&Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE){ Toast.makeText(getBaseContext(), "SCREENLAYOUT_SIZE_LARGE" , Toast.LENGTH_LONG).show(); }

[Android] Android 開發環境建立

圖片
開發的第一步當然就是建立開發環境,全部建立的過程只需要參考Android developer官方網站http://developer.android.com/sdk/index.html。這邊只是重點式地分享我walk through整個安裝過程的步驟(目前Android的版本是2.2。我的環境是Mac OSX 10.6): (1) Quick Start 是很概觀的介紹,詳細步驟要參考 Installing the SDK (2) 所謂的下載和安裝android sdk,其實是先下載 Android SDK Starter Package,就是一套協助使用者安裝各式各樣工具的工具,然後再利用這套工具去下載需要的版本的sdk, api, driver,starter也用來執行模擬器。 在Mac上面要多一個步驟,這邊我先跳過,結果後面一樣可以HelloWorld。 (3) 然後執行sdk底下的"android",開啟starter。選擇要安裝的component和設定Virtual Device。 (4) 然後就是下載和安裝Eclipse開發工具,然後安裝Eclipse的開發Android外掛 ADT (5) 接下來就可以成功運行 Hello World Tutorial 的範例了。發現由eclipse啟動模擬器時,模擬器會關不掉,所以改為自行啟動starter來執行模擬器比較好,這邊啟動的模擬器一樣可以從eclipse連結過來測試。

如何在AS3 project中使用Flex的mx.utils類別庫?

google了很久,不知道是不是我關鍵字下得不好,這個問題還真不知該怎麼找;最後找到的方法都很奇怪,像是 自行把playerglobals.swc再加入到library path中 ,我用了一樣不行。 試了半天,後來想到,幹麻不直接直接把mx.utils找出來,並且複製到AS3 Project裡,實驗結果發現,果真這樣還真的就可以用了。 mx.utils在哪裡?在我Mac裡的mx.utils資料夾位於: /Applications/Adobe Flex Builder 3/sdks/3.2.0_withAIR20rc/frameworks/projects/framework/src/mx 當複製到AS3 Project裡,並且進行編譯的時候,會跑出一些錯誤,包括: (1) 1068: 無法開啟包含的檔案: {project path}/src/mx/core/Version.as。...... 這個只要把發出這些錯誤的位置的 include "../core/Version.as"; 註解掉就行了 (2) 接下來又會跑出錯誤: Unable to resolve resource bundle "utils" 這時再依樣話葫蘆,到出問題的地方,把那個指令註解掉 最後編譯的時候就都沒有錯誤了,如此便可以成功使用這個類別庫了! 另外搜尋的時候找到這篇文章的方法蠻有趣的 Using StringUtil Class in Flash

然後讀了:Commentary on a post about Adobe’s “Mobile Strategy”

從這篇認識了一些Flashlite的發展歷程 "In the end, Adobe isn’t really providing any clear direction on what Flash professionals should be doing/taking on devices, other than waiting for 10.1 and Adobe CS5 these days. Hopefully, that’ll change in 2010 as 10.1 starts to appear." 連這位專家也對FP10.1感到困惑。 "Android would only make sense, if Adobe *wasn’t* going to do AIR on Android devices … to my knowledge, they haven’t really disclosed that info one way or the other." Flash to iPhone模式要發生在其他平台的一個要素是, 除非對方平台不願給放AIR,不然這個模式沒太大意義。 參考來源: "Commentary on a post about Adobe’s “Mobile Strategy”" - Scott Janousek » Blog Archive » Commentary on a post about Adobe’s “Mobile Strategy” ( 在「Google 網頁註解」中檢視 )

看了文章:Why Adobe’s mobile strategy is fundamentally flawed

讀後感,順便測試一下Google的「網頁註解」 這個題目還不錯, 但作者最後的結論竟然是希望Adobe應該想辦法讓Flash Developer有辦法產出Native apps....如果覺得Flash VM on Mobile造成crapy UE的話,那理所當然要要求Adobe改善crapy VM這件事,Adobe現在好像也是在做這件事。 不是很了解為什麼作者覺得VM不夠好, 轉而認為應該保有Flash CS,放棄VM??。FP10.1不只是FP而已,10. 1這次更新的重點也是為了解決crapy FlashLite的問題不是嗎? 但這篇文章還是讓我知道大家(包括後來回應的Scott Janousek) 對FP 10.1下一步的動作都還是很迷惘 參考來源: Aral Balkan · Why Adobe’s mobile strategy is fundamentally flawed ( 在「Google 網頁註解」中檢視 )