java與flash
1. 為什麼選擇java進行移動游戲開發
為什麼選擇Java進行移動游戲開發?
盡管C能夠被編譯成本機代碼並且可以直接存取本機系統資源,以及與BREW(它允許開發者使用任何希望的語言,包括C,Java,XML和Flash)相結合為移動游戲開發者提供端到端的解決方案,但是Java仍然是進行移動游戲開發的最流行的選擇。Java,或更精確的說是Java 2微型版本(J2ME)平台,被認為是開發移動游戲的最方便的語言。(要更多地了解J2ME,請參考"What is Java 2 Micro Edition?")。J2ME如此流行的背後動力包括:
J2ME遵循為大多數手持設備生產商所支持的工業標准,如今大多數的行動電話都支持Java開發。
J2ME是一個自由的和開放的平台。這使得開發人員投資很少,但卻提供給他們必需的靈活性以及大量的支持。
它的高度可移植的特性("書寫一次到處運行")保證一部為一個品牌/類型的手持設備開發的游戲應用程序,將可以工作在其它類型的支持Java的手持設備品牌/類型上。
它特別為小型設備進行了優化,是輕量級的,高度安全的,因為在其上開發的應用程序不能存取或者影響運行在該手持設備上的其它應用程序。
J2ME包含移動信息設備輪廓(MIDP)API,它的設計是為專門開發包括手機在內的移動設備應用程序,但切記它們的局限性和約束條件。而且,最新的MIDP 2.0版自己提供缺拿了一套完整的API以用於游戲開發,這使得游戲開發更為簡單和快捷。
現在,我們探索一下MIDP 2.0在移動游戲開發環境中的使用。
三、 MIDP2.0在游戲開發中的地位
MIDP2.0 API是一組具有特別性能的API,可用於開發安全的,內容豐富的多媒體應用軟體,包括適合於移動設備的游戲程序。MIDP 2.0基於以前的MIDP 1.0之上並提供一個更好的開發平台以創建高效快速的移動設備應用程序。
MIDP 2.0進一步提煉了MIDP 1.0的特性和有關功能。有關這些新特性的信息請參考What』s New in MIDP 2.0。新增添到MIDP上的重要特點之一是Game API,或更精確地說是javax..lci.game API包。通過該Game API,MIDP 2.0提供給游戲開發者現成的程序模塊,這些模塊在早期的MIDP 1.0時是你必須從頭開始創建的。這些模塊以類的形式提供,用於創建和控制各種爛衡游戲元素,如游戲畫布、精靈、層等等(後文將介紹)。這樣,MIDP 2.0大大減少了游戲開發者的創作時間。
進行游戲飢扮做開發必需的另外兩個MIDP 2.0 API包,在本文中也作了探索,它們是javax..midlet和javax..lci。
javax..midlet API包是開發各種類型的移動應用程序的基礎。它包含javax..midlet.MIDlet類,它是所有的基於J2ME的移動應用軟體(或稱為midlet)的基類,它必須由所有移動應用程序的main類加以擴展後使用。非常類似於java.applet.Applet類,MIDlet類提供創建midlet程序的必要的資源。
javax..lci API包是開發各種類型的移動應用程序的用戶介面所必需的。這個API提供類來創建和控制UI部件(例如屏幕,表單,文本框,單選按鈕,等等)並且處理包括游戲在內的移動應用程序的輸入。有使用AWT和SWING GUI開發經驗的開發者會發現javax..lci包中的元素非常相似於這些API中的元素。
我將在本文的示例游戲開發期間討論這些API中的和游戲開發相關的元素。
2. JAVA是什麼,和FLASH是什麼關系
JAVA是一種編程的語言,類似編程的語言有很多,如C,C++等,FLASH是設計動畫的軟體,需要JAVA語言的編寫來達到更好的動畫效果及動作~!
3. flash和java的問題
flash和java交互需要有javascript 和flex的基礎。
一、在網頁中通過JavaScript調用Flash里的ActionScript:
可以通過ExternalInterface的addCallback方法,在Flash里注冊一個可以供網頁上的JavaScript或ActiveX調用的方法,具體代碼如下:
程序代碼
import flash.external.*;
var methodName:String = "PlayBB";
var instance:Object = null;
var method:Function = playB;
var ws:Boolean = ExternalInterface.addCallback(methodName, instance, method);
在JavaScript中調用時,需要為Flash所在的Object標簽設置一個ID,並且設置allowScriptAccess屬性,示例代碼如下:
程序代碼
<object id="topFlash" name="topFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="686" height="101">
<param name="movie" value="_top.swf" />
<param name="quality" value="high" />
<param name="allowScriptAccess" value="always" />
<embed allowScriptAccess="always" src="_top.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="686" height="101"></embed>
</object>
網頁中的JavaScript具體的調用示例:
程序代碼
function thisMovie(movieName) {
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName]
}
else {
return document[movieName]
}
}
("topFlash").PlayBB();
二、在Flash的ActionScript中調用網頁里的JavaScript:
直接使用ExternalInterface的Call方法就可以了,示例代碼如下:
程序代碼
import flash.external.*;
var obj:Object = ExternalInterface.Call("JavaScript方法", "參數");
參數可以是任何As中的類型,在調用時Flash會自動封裝,多參數使用,分隔。
4. flash編程和JAVA有什麼區別,哪個好學一點
flash是交互界面,很直觀,只在動作里可用腳本程序,比較簡單易學,主要用於編輯動畫;java是一種系統化程序語言,功能較強,比較復雜。主要用於編輯網頁。
5. 怎麼在java中使用flash
1.如果單獨的展示FLASH的話,那就直接引用。
2.如果結合JAVA和FLASH交互等操作的話,那就得使用FLEX了,FLEX可以跟JAVA進行
通信和交互,FLEX最終生成的就是FLASH文件SWF!