加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

移植flash游戏到android

发布时间:2020-12-15 17:44:51 所属栏目:百科 来源:网络整理
导读:网上有很多现成的Flash游戏,一直想在手机上玩,虽说Android2.2支持Flash,但是大多数游戏需要键盘控制,最多的就是方向键,而手机大多数没有键盘(有键盘的好像也不行),所以实际上就没办法玩了。 现在Rexsee提供了一个很简单的解决方案,可以迅速将Flash
网上有很多现成的Flash游戏,一直想在手机上玩,虽说Android2.2支持Flash,但是大多数游戏需要键盘控制,最多的就是方向键,而手机大多数没有键盘(有键盘的好像也不行),所以实际上就没办法玩了。

现在Rexsee提供了一个很简单的解决方案,可以迅速将Flash游戏移植到Android手机上(2.2以上)。(目前Rexsee已经开源,在社区可以查看全部的开发手册、API说明与源码, www.rexsee.com) ?

下面是一个例子,把经典的美羊羊卡丁车移植到了手机上,而且有两个版本,一个用虚拟键盘,一个用方向传感器。

所有代码是用HTML和JS写的,包括全部HTML,总共只有100多行。步骤如下:

  1. 准备键盘图片,这里用到了6个键,左、右、空格(跳跃)、退出、消息和Rexsee市场键,Rexsee提供了几套现成的键可以下载。将键的图片放到asset/keyboard/default/文件夹中,这样用"keyboard/default"来指定theme参数即可,否则要用放图片的文件夹的完整路径(本地SD卡或网络地址均可)来制定theme参数。文件名就是键值,后缀名是.png
  2. 将美羊羊卡丁车的swf文件放在asset/文件夹中
  3. 将横幅图片(这里是banner.png)和启动按钮图片(这里是startNow.png)放在asset/文件夹中
  4. 当然还有图标要放在res中,还要将string.xml中的首页地址设为file:///android_asset/index.html。这是唯一的一个程序文件,100多行。
  5. 这是离线版的,所以要下载Rexsee的JAR包,自己用Eclipse编译,如果嫌麻烦,可以在线编译一个首页地址指向服务器某个网页地址,然后将下面的index.html的代码放在这个文件中(有些路径要改,比如图片什么的),如果也想离线玩,可以在首次载入后将swf文件和图片自己或者用rexseeClient下载到本地。当然也可以不下载,就在线玩。
标签: Rexsee ?

Android SDK

代码片段(3)[全屏查看所有代码]

1.?[代码]先看一下res/values/string.xml?????

1 <?xml version="1.0"?encoding="utf-8"?>
2
<resources>
3 <string name="app_name">美羊羊卡丁车</string>
4 "app_home">file:///android_asset/index.html</string>
5 "rexsee_home">http://www.rexsee.com/flash/index.php</string>
6 </resources>

2.?[代码]再看一下AndroidManifest.xml?????

01 02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="MeiYangYangKaDingChe.rexsee"?android:versionCode="1"android:versionName="1.0">
03 <supports-screens android:largeScreens="true"?android:normalScreens="true"android:smallScreens=android:anyDensity=/>
04 <application android:icon="@drawable/icon"?android:label="@string/app_name"android:theme="@android:style/Theme.NoTitleBar"05 <activity android:name="rexsee.activity.RexseeActivity"android:configChanges="orientation|keyboardHidden"?android:launchMode="singleTop">
06 <intent-filter><action android:name="android.intent.action.MAIN"?/><category android:name="android.intent.category.LAUNCHER"?/></intent-filter>
07 ?
08 </activity>
09 </application>
10 <uses-permission android:name="android.permission.INTERNET"/>
11 "android.permission.ACCESS_NETWORK_STATE"12 </manifest>

3.?[代码]最后是asset/index.html的源代码?????

001 1:? <HTML>
002 2:? <HEAD>
003 3:????? <TITLE>美羊羊卡丁车</TITLE>
004 4:????? <META http-equiv=Content-Type content=text/html charset=GB2312>?
005 5:????? <META http-equiv=Expires content=0>
006 6:????? <META http-equiv=Cache-Control content=no-cache>
007 7:????? <META http-equiv=Pragma content=no-cache>
008 8:????? <SCRIPT type=text/javascript>
009 9:?????????
010 10:?????????function?startFlashGame(para){
011 11:?????????????//开始Flash游戏
012 12:???????????? rexseeScreen.setScreenOrientation(para.orientation);?????//将屏幕方向设为水平
013 13:?????????????if?( para.sensor ) {
014 14:???????????????? rexseeOrientation.setRate('fastest');????????????????//将传感器敏感程度设为最高
015 15:???????????????? rexseeOrientation.start();????????????????????????????//启动传感器
016 16:???????????? }?else?{
017 17:???????????????? rexseeOrientation.setRate('normal'//将传感器敏感程度设为正常
018 18:???????????????? rexseeOrientation.stop();????????????????????????????//停止传感器
019 19:???????????? }
020 20:???????????? rexseeFlash.clearKeyboard();????????????????????????????//清空键盘
021 21:?????????????( para.leftKeyboard ) rexseeFlash.setLeftKeyboard(para.leftKeys,para.leftKeyTheme,para.leftKeyboardStyle,para.leftKeyRowStyle,para.leftKeyStyle,para.leftKeyPressedStyle);???????????//设置左键盘
022 22:?????????????( para.rightKeyboard ) rexseeFlash.setRightKeyboard(para.rightKeys,para.rightKeyTheme,para.rightKeyboardStyle,para.rightKeyRowStyle,para.rightKeyStyle,para.rightKeyPressedStyle);???//设置右键盘
023 23:???????????? rexseeFlash.setSwfStyle(para.swfStyle);????????????//设置Flash游戏区域的样式
024 24:???????????? rexseeFlash.show(para.swf,para.dialogStyle);????//设置对话框样式并启动对话框
025 25:???????? }
026 26:?????????var?paraKeyboardVersion = {
027 27:???????????????? orientation:?????????????"landscape",????????//屏幕方向
028 28:???????????????? sensor:?????????????????false//是否启用方向传感器
029 29:?????????????????//设置左边键盘
030 30:???????????????? leftKeyboard:?????????????//是否启用左键盘
031 31:???????????????? leftKeys:?????????????????""//左键盘的按键,数字序列,同一行按键使用逗号分隔,不同行使用分号分隔,Rexsee自定义按键包括-2,-3,-4,-5,其余按键请参考http://developer.android.com/reference/android/view/KeyEvent.html
032 32:???????????????? leftKeyTheme:?????????????//左键盘的样式,字符串,应在asset目录下创建以该字符串命名的文件夹,然后将按键图片(键值.png)放在该文件夹
033 33:???????????????? leftKeyboardStyle:?????????//左键盘的样式
034 34:???????????????? leftKeyRowStyle:?????????//左键盘中每一行的样式
035 35:???????????????? leftKeyStyle:?????????????//左键盘中每个按键的样式
036 36:???????????????? leftKeyPressedStyle:?????????//左键盘中每个按键被按下时的样式
037 37:?????????????????//设置右边键盘,参看上面左键盘说明
038 38:???????????????? rightKeyboard:?????????????true039 39:???????????????? rightKeys:?????????????????"-1,-5;-2,62;21,22"040 40:???????????????? rightKeyTheme:?????????????"keyboard/default"041 41:???????????????? rightKeyboardStyle:?????"border-left-width:5px;border-left-color:#aaaaaa+#000000/2;background-color:#000000;"042 42:???????????????? rightKeyRowStyle:?????????043 43:???????????????? rightKeyStyle:?????????????044 44:???????????????? rightKeyPressedStyle:????045 45:?????????????????//设置Flash区域的样式
046 46:???????????????? swfStyle:????????????????047 47:?????????????????//设置对话框的样式
048 48:???????????????? dialogStyle:?????????????049 49:?????????????????//设置Flash游戏的地址
050 50:???????????????? swf:?????????????????????"game.swf"
051 51:???????? };
052 52:?????????paraSensorVersion = {
053 53:???????????????? orientation:?????????????054 54:???????????????? sensor:?????????????????055 55:???????????????? leftKeyboard:?????????????056 56:???????????????? leftKeys:?????????????????057 57:???????????????? leftKeyTheme:?????????????058 58:???????????????? leftKeyboardStyle:?????????059 59:???????????????? leftKeyRowStyle:?????????060 60:???????????????? leftKeyStyle:?????????????061 61:???????????????? leftKeyPressedStyle:?????????062 62:???????????????? rightKeyboard:?????????????063 63:???????????????? rightKeys:?????????????????"-1;-5;-2;62"064 64:???????????????? rightKeyTheme:?????????????065 65:???????????????? rightKeyboardStyle:?????066 66:???????????????? rightKeyRowStyle:?????????067 67:???????????????? rightKeyStyle:?????????????068 68:???????????????? rightKeyPressedStyle:????069 69:???????????????? swfStyle:????????????????070 70:???????????????? dialogStyle:?????????????071 71:???????????????? swf:?????????????????????"game.swf"
072 72:???????? };
073 73:
074 74:???????? window.onRexseeReady =?function(){
075 75:?????????????//在页面装载完毕时运行
076 76:?????????????( rexseeBuild.getSdk()<8) {
077 77:???????????????? alert("对不起,您的手机软件版本太低,不能运行该游戏,请使用Android2.2以上版本运行该游。");
078 78:???????????????? rexseeApplication.quit();
079 79:???????????? }
080 80:?????????????(!rexseeFlash.isReady()){
081 81:???????????????? rexseeDialog.confirm("Adobe Flash Player""Adobe Flash Player没有安装,无法运行该游戏。是否现在安装?""现在安装""退出程序""javascript:rexseeBrowser.open('http://www.rexsee.com/flash/flashplayer/download.php');rexseeApplication.exit();""javascript:rexseeApplication.exit();"082 82:???????????? }
083 83:???????????? rexseeScreen.setScreenAlwaysOn();??????????????????//总是点亮屏幕
084 84:???????????? rexseeScreen.setScreenOrientation('portrait');??????//将将屏幕方向设为垂直
085 85:???????????? rexseeStatusBar.setStyle("visibility:hidden;");?????//隐藏状态栏
086 86:???????????????????? }
087 87:???????? window.onAjaxReturned =?(ajaxUrl,response){
088 88:???????????? response = unescape(response);
089 89:?????????????( ajaxUrl == headerUrl) document.getElementById("header").innerHTML = response;
090 90:?????????????else?( ajaxUrl == footerUrl) document.getElementById("footer").innerHTML = response;
091 91:?????????????( ajaxUrl == jsUrl) eval(response);
092 92:???????? }
093 93:???????? window.onFlashDialogDismissed =?(){
094 94:?????????????//在退出Flash游戏返页面时运行
095 95:???????????? rexseeScreen.setScreenOrientation();????????//将屏幕方向设为垂直
096 96:???????? }
097 97:???????? window.onbeforeunload =?098 98:?????????????//在退出页面时运行
099 99:???????????? rexseeScreen.setScreenOrientation('auto');????????????//将屏幕方向设为自动
100 100:??????????????? rexseeOrientation.stop();????????????????????????????//停止方向传感器
101 101:??????????? }
102 102:???????????
103 103:????????????version =?;
104 104:????????????//Rexsee新增按键的回调函数
105 105:??????????? window.onKeyboardHelpPressed =?106 106:????????????????//对应键值:-2
107 107:????????????????( version ==?"keyboard"?) alert("左右键向左或向右,空格键跳跃。"108 108:????????????????"sensor"?"左右倾斜手机向左或向右,虚拟键盘的空格键跳跃。");
109 109:??????????? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

相关内容
推荐文章
站长推荐
热点阅读