2013年1月29日 星期二

Flash AIR撥打電話或是開啟簡訊頁面


網址:
http://help.adobe.com/zh_TW/FlashPlatform/reference/actionscript/3/flash/net/package.html#navigateToURL()

下列範例會說明使用特定數字啟動裝置電話撥號程式的語法。
var request:URLRequest = new URLRequest( "tel:+5555555555" );
navigateToURL( request );

下列範例會說明使用特定收件者啟動裝置文字訊息應用程式的語法。
var request:URLRequest = new URLRequest( "sms:+5555555555" );
navigateToURL( request );

下列範例會說明啟動 Android Market 應用程式的語法。搜尋參數會設定為尋找 Flash Player 應用程式。
var request:URLRequest = new URLRequest( "market://search?q=pname:com.adobe.flashplayer" );

2013年1月25日 星期五

Google map 經緯度轉換成地址

Google map 經緯度轉換成地址
只需要將GPS座標帶入並且設定好語系,就可以回傳地址資訊

API文件位置:
https://developers.google.com/maps/documentation/geocoding/#ReverseGeocoding

測試網址:
http://maps.googleapis.com/maps/api/geocode/json?language=zh-Tw&latlng=40.714224,-73.961452&sensor=false

2012年9月17日 星期一

AS3 -SetInterval V.S. Timer 效能對照

因為工作需求,所以對SetInterval 及 Timer做記憶體及每一週期所需時間做了稍為的比較


測試結論:
1.大致上可知道Timer的記憶體用量比SetInterval來的穩定,不會因為週期數而有影響
2.不過有一個地方比較詭異,當swf的FPS設定為24所算出來的週期時間是放大值
    設定值為42 ms,週期時間換算為83.32 ms ,調整FPS後,即接近設定值
3.設定值為42 ms會有2~3 ms的誤差值,不管是哪一個模式都會有

比較過後,Timer 的記憶體用量穩定度高 , 時間誤差都一樣,所以還是case by case,不過還是推薦用Timer,畢竟記憶體爆量可不好玩


測試數據:

Timer  
初始化記憶體(M) 使用後記憶體(M)  所花時間(ms)  加總值 周期所花時間(ms) 記憶體用量(M)
    2.7890625    3.7578125    41664    500    83.328    0.96875
    2.7890625    3.75390625    41628    500    83.256    0.96484375
    2.796875    3.76171875    22240    500    44.48    0.96484375
    2.78515625    3.75    22219    500    44.438    0.96484375
    2.79296875    3.7578125    44465    1000    44.465    0.96484375
    2.7890625    3.75390625    44470    1000    44.47    0.96484375
    2.796875    3.76171875    44476    1000    44.476    0.96484375
    2.7890625    3.7578125    44510    1000    44.51    0.96875
                       
setInterval  
初始化記憶體(M) 使用後記憶體(M)  所花時間(ms)  加總值 周期所花時間(ms) 記憶體用量(M)
    2.7890625    3.75    41660    500    83.32    0.9609375
    2.78125    3.74609375    22240    500    44.48    0.96484375
    2.7890625    3.75390625    22239    500    44.478    0.96484375
    2.78125    3.75390625    44426    1000    44.426    0.97265625
    2.7890625    3.76171875    44436    1000    44.436    0.97265625
    2.79296875    3.75390625    44480    1000    44.48    0.9609375
    2.7890625    3.765625    44485    1000    44.485    0.9765625

2012年9月4日 星期二

誠徵 Flash工程師 職缺

目前公司正在徵Flash工程師,下面是職缺需求:

需求: 1~2人

工作條件:
   Flash AS3:1年經驗

工作項目:
  1.flash game開發
 
福利:
   1.教育訓練
   2.勞健保
   3.三節獎金
   4.專案獎金


如果有興趣請mail到:matis@sgd108.com

2012年7月11日 星期三

Stage3D 2D Framework測試

最近為了做效能優化,所以使用了Stage 3D來提高效能

Stage 3D是透過GPU做加速運算

因此測試了2套2D的library,一套是Starling,一套是ND2D
下面是分析
-----------------------------------------------------------------------------
1,Starling
  優點:
      1.文件資源多
      2.版本更新算快的
     
  缺點:
     1.架構龐大要運用的話需要額外包一層Class才能方便使用
     2.記憶體用量比ND2D多了7 M
-----------------------------------------------------------------------------
2.ND2D
  優點:
    1.使用記憶體量比Starling少
    2.架構簡單,也可以透過其類似的架構 (ND3D) 寫3D Game
   
  缺點:
    1.文件嚴重短缺
    2.一般設定Sprite2D的FPS設定為24讀取時會過於緩慢,需設為60,但是對系統的loading並不會有影響
   
-----------------------------------------------------------------------------
比較表:
-----------------------------------------------------------------------------
Starling
 Flash Player記憶體用量[Stats]:56M   
 CPU:12%
 GPU:5%
 GPU RAM:370M
-----------------------------------------------------------------------------
ND2D:
 Flash Player記憶體用量[Stats]:49M   
 CPU:11%
 GPU:5%
 GPU RAM:370M
 -----------------------------------------------------------------------------

結論:
   在一些國外的測試數據上Starling的效能算是前2名內,再加上其文件資源很多,對於想要學習的人比較適合學Starling
   至於ND2D,他在記憶體用量少了 7M 主要是因為他的動畫結構比較簡單,在開發上比較容易,但是文件真的很少,初學者建議先學Starling了解stage3D的概念
   再去學ND2D會比較適當

2012年5月29日 星期二

Open RTMFP 伺服器架設教學

最近在使用Flash的P2P技術,找到了這一套免費的P2P status server,如果要用adobe的就要用FMS了

下面教大家怎麼安裝:

OpenRTMFP軟體需求:
1.lua 5.1版(不要用5.2的會出錯)
2.poco 1.4版
3.openSSL


請先安裝以下套件才可執行OpenRTMFP安裝
 1.gcc(lua需要)
     1-1.gcc
     1-2.gcc-c++
 2.unixODBC(poco需要)
 3.lua 5.1
 4.openSSL
 5.poco 1.4

poco 1.4 安裝
 1../configure
 2.make -s all
 3.sudo make -s install

LUA 5.1安裝
 1.make linux
 2.make install

OpenRTMFP安裝:
 1.進入RTMFP的lib目錄並執行make
  1.cd rtmfp/CurimusLib
  2.make
 2.進入RTMFP的Server目錄並執行make
  1.cd ../CurimusServer
  2.make
 
 執行:
  1.背景處理並使用預設port
   nohup ./CurimusServer &



FAQ:
 1.POCO安裝出現g++ command not found
  A:yum install gcc-c++
 2.LUA安裝出現/usr/bin/id: can not found -lreadline or -lxxxx
  A:使用ln建立動態link
   範例:
   2-1.cd /usr/lib64/
   2-2.ln -s readline.so.5 readline.so
  
   ln [-sf] 來源檔 目標檔
   ln -s readline.so.5 readline.so
    選項與參數:
    -s  :如果不加任何參數就進行連結,那就是hard link,至於 -s 就是symbolic link
    -f  :如果 目標檔 存在時,就主動的將目標檔直接移除後再建立!
   
 2.luaconf.h:275:31: error: readline/readline.h: No such file or directory
  luaconf.h:276:30: error: readline/history.h: No such file or directory
  A:yum install readline-devel
 
 3..sources/Script.h lua5.1/lua.h not found
  A:進入到有問題的檔案中修改"lua5.1/lua.h"改為"lua.h"就可以
   Script.h
   Script.cpp
   都會有該問題存在
   编辑Makefile,把-llua5.1修改为-llua
 4.編譯成功後執行出現錯誤:“error while loading shared libraries: libPocoFoundation.so.12”
  A:執行:
   32bit
    export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"
   64bit
    export LD_LIBRARY_PATH="/usr/local/lib64:$LD_LIBRARY_PATH"

2012年5月8日 星期二

AIR 及 Android原生語言 效能測試

AIR Android原生語言 效能測試
測試方式:

使用相同For迴圈測試加總所需時間



測試程式碼(AS3):

var now:Date = new Date();

        var s1:Number, s2:Number, s3:Number, s4:Number, s5:Number;

        s1 = now.getTime();

        for(var i:int = 1 ; i < 10000001 ; i++){

                if(i == 10000000){

                        var time5:Date = new Date();

                        s5 = (time5.getTime() - s1);

                        t4.text = "千萬次花了" + s5.toString() + "毫秒";

                }else if(i == 1000000){

                        var time4:Date = new Date();

                        s4 = (time4.getTime() - s1);

                        t3.text = "百萬次花了" + s4.toString() + "毫秒";

                }else if(i == 100000){

                        var time3:Date = new Date();

                        s3 = (time3.getTime() - s1);

                        t2.text = "十萬次花了" + s3.toString() + "毫秒";

                }else if(i == 10000){

                        var time2:Date = new Date();

                        s2 = (time2.getTime() - s1);

                        t1.text = "一萬次花了" + s2.toString() + "毫秒";

                }

        }

}
 

測試數據:

Android模擬器(Android 2.2)

計算次數
Java原生(ms)
AIR(ms)
差異百分比
1萬次
8
14
1.75
10
79
33
0.417722
100
791
147
0.185841



實機測試(測試機種 SE Neo V Android 2.3)

計算次數
Java原生(ms)
AIR(ms)
差異倍數(AIR/Java)
1萬次
8
8
1
10
11
28
2.545454545
100
42
82
1.952380952



結論:

AIR在實機上比原生語言慢1倍,但實際觀察所耗時間(ms),還在可容許範圍內

如果使用AIR做複雜程式開發需考慮更好的效能及程式優化技巧