MIDP與Doja的比較
1-1 聲音重放
Doja1.5 |
Use AudioPresenter, MediaSound Classes. |
MIDP1.0 |
不支持 |
MIDP2.0 |
Use Player interface and Manager Class |
注:在Doja1.5中,不能同時(shí)播放多個(gè)音樂(lè)文件.
1-2 背景燈光,振動(dòng)
Doja1.5 |
Use PhoneSystem.setAttribute() |
MIDP1.0 |
不支持 |
MIDP2.0 |
Use Display.vibrate(), Display.flashBacklight() |
注:Doja中開(kāi)/關(guān)蓋,也是通過(guò)PhoneSystem.setAttribute()來(lái)檢測(cè).
1-3按鍵檢測(cè)
Doja1.5 |
通過(guò)Canvas.processEvent()函數(shù)響應(yīng),Canvas.getKeypadState()獲得鍵值 |
MIDP1.0 |
Canvas.key****()函數(shù)響應(yīng),Canvas.getKeyState()獲得鍵值 |
MIDP2.0 |
同MIDP1.0 |
1-4 功能鍵
Doja1.5 |
只能定義左,右兩個(gè)功能鍵.可以通過(guò)Frame.setSoftLabel()來(lái)獲得label |
MIDP1.0 |
可以定義多個(gè)Command,通過(guò)addCommand添加到 |
MIDP2.0 |
同MIDP1.0 |
注:Doja中所有的按鍵響應(yīng)都是通過(guò)Canvas.processEvent()函數(shù)來(lái)響應(yīng)
1-5 翻轉(zhuǎn)
Doja1.5 |
不支持 |
MIDP1.0 |
不支持 |
MIDP2.0 |
Use the Sprite class. |
注:雖然不支持翻轉(zhuǎn),但Doja1.5支持透明gif圖片.
1-6 setClip()
Doja1.5 |
不支持 |
MIDP1.0 |
Use Graphics.clipRect(), Graphics.setClip(). |
MIDP2.0 |
同MIDP1.0 |
注:由于Doja1.5不支持setClip,所以需要把所有的tileset創(chuàng)建成多個(gè)Image對(duì)象.可以通過(guò)美術(shù)先切割圖片,然后再把切割后的圖片加載進(jìn)內(nèi)存,但這樣消耗內(nèi)存大,索引起來(lái)也麻煩.在Roulette中,我們采用了AuroraGT工具,把一張tileset生成一個(gè)bsprite文件,通過(guò)bsprite文件在內(nèi)存中動(dòng)態(tài)創(chuàng)建gif圖片.
1-7 Color
Doja1.5 |
在設(shè)置顏色值時(shí)需要是getColorOfRGB()返回值.否則在真機(jī)上會(huì)拋異常 |
MIDP1.0 |
無(wú) |
MIDP2.0 |
同MIDP1.0 |
1-8 Off-screen Image
Doja1.5 |
不支持 |
MIDP1.0 |
Imgae.createImage() |
MIDP2.0 |
同MIDP1.0 |
注:因此如果需要?jiǎng)?chuàng)建一張Image,只能把圖片數(shù)據(jù)放在草稿板中,通過(guò)MediaManager.getImage()獲得.
1-9 數(shù)據(jù)存儲(chǔ)
Doja1.5 |
保存在草稿板中,草稿板的最大容量為100K,與普通文件一樣.可以隨機(jī)存取. |
MIDP1.0 |
通過(guò)RecordStore存儲(chǔ).提供了數(shù)據(jù)庫(kù)方式存取 |
MIDP2.0 |
同MIDP1.0 |
注:在讀/寫(xiě)草稿板的過(guò)程中,不支持skip.
1-10 媒體文件
Doja1.5 |
只支持mld格式 |
MIDP1.0 |
Mid,mmf等 |
MIDP2.0 |
Wav,mid,mmf等 |
1-11 連接限制
Doja1.5 |
只支持HTTP連接,并且只能與它所下載資源(草稿板)的主機(jī)通信.
(據(jù)說(shuō)是為了安全考慮),每次連接最大可發(fā)送5K,最大可接收10K |
MIDP1.0 |
只支持HTTP,可以和多個(gè)主機(jī)通信,數(shù)據(jù)量根據(jù)手機(jī)而定 |
MIDP2.0 |
支持HTTP,Winsock, 可以和多個(gè)主機(jī)通信, 數(shù)據(jù)量根據(jù)手機(jī)而定 |
注:由于每次最大只能接收10K的數(shù)據(jù),因此我在上傳草稿板文件時(shí),就需要先分割成10K以下的多個(gè)小文件,下載的時(shí)候再在程序中”還原”.分割的工具有很多,在任意一個(gè)Doja項(xiàng)目中你都可以找到一個(gè),下載的時(shí)候可以通過(guò)在jam中的AppParam 中設(shè)置分割文件數(shù),再通過(guò)IApplication.getArgs()獲得,參考代碼如下:
//.jam 參數(shù)之間以空格隔開(kāi)
AppParam = [url_to_scratchpad]/KingKong_Mitsubishi341_EN_102_ 12 1.0.2
//.java
String _launchParams[] = cMIDlet._theMIDlet.getArgs();
spSplites=Integer.parseInt(_launchParams[1]); //spSplites = 12
string _version = _ launchParams[2];//_version = “1.0.2”