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!