- 浏览: 31499 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
jameslin_2011:
以为是源码。。。
微媒-腾讯微博开放平台应用 发布新版本了(2012.05.04更新) -
hbxflihua:
很不错,不过貌似少了些东西。比如你实现 OnClickList ...
Android拍照、录像、录音代码范例 -
androidzjb:
谢谢分享,
Android拍照、录像、录音代码范例 -
liu_jun_y:
自己每次项目完后都想总结下,但总是推。。。。
【转载】开发经验总结,很受用。 -
379548695:
问下楼主。是基于哪个版本开发的。我导入之后sdk选1.4.,1 ...
Tab的多种典型用法总结(带动画)
网上有很多现成的Flash游戏,一直想在手机上玩,虽说Android2.2支持Flash,但是大多数游戏需要键盘控制,最多的就是方向键,而手机大多数没有键盘(有键盘的好像也不行),所以实际上就没办法玩了。
现在Rexsee提供了一个很简单的解决方案,可以迅速将Flash游戏移植到Android手机上(2.2以上)。(目前Rexsee已经开源,在社区可以查看全部的开发手册、API说明与源码,
www.rexsee.com
)
下面是一个例子,把经典的美羊羊卡丁车移植到了手机上,而且有两个版本,一个用虚拟键盘,一个用方向传感器。
下面是一个例子,把经典的美羊羊卡丁车移植到了手机上,而且有两个版本,一个用虚拟键盘,一个用方向传感器。
所有代码是用HTML和JS写的,包括全部HTML,总共只有100多行。步骤如下:
- 准备键盘图片,这里用到了6个键,左、右、空格(跳跃)、退出、消息和Rexsee市场键,Rexsee提供了几套现成的键可以下载。将键的图片放到asset/keyboard/default/文件夹中,这样用"keyboard/default"来指定theme参数即可,否则要用放图片的文件夹的完整路径(本地SD卡或网络地址均可)来制定theme参数。文件名就是键值,后缀名是.png
- 将美羊羊卡丁车的swf文件放在asset/文件夹中
- 将横幅图片(这里是banner.png)和启动按钮图片(这里是startNow.png)放在asset/文件夹中
- 当然还有图标要放在res中,还要将string.xml中的首页地址设为file:///android_asset/index.html。这是唯一的一个程序文件,100多行。
- 这是离线版的,所以要下载Rexsee的JAR包,自己用Eclipse编译,如果嫌麻烦,可以在线编译一个首页地址指向服务器某个网页地址,然后将下面的index.html的代码放在这个文件中(有些路径要改,比如图片什么的),如果也想离线玩,可以在首次载入后将swf文件和图片自己或者用rexseeClient下载到本地。当然也可以不下载,就在线玩。
先看一下res/values/string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">美羊羊卡丁车</string> <string name="app_home">file:///android_asset/index.html</string> <string name="rexsee_home">http://www.rexsee.com/flash/index.php</string> </resources>
再看一下AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="MeiYangYangKaDingChe.rexsee" android:versionCode="1" android:versionName="1.0"> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" /> <application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar"> <activity android:name="rexsee.activity.RexseeActivity" android:configChanges="orientation|keyboardHidden" android:launchMode="singleTop"> <intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> </manifest>
最后是asset/index.html的源代码
1: <HTML> 2: <HEAD> 3: <TITLE>美羊羊卡丁车</TITLE> 4: <META http-equiv=Content-Type content=text/html charset=GB2312> 5: <META http-equiv=Expires content=0> 6: <META http-equiv=Cache-Control content=no-cache> 7: <META http-equiv=Pragma content=no-cache> 8: <SCRIPT type=text/javascript> 9: 10: function startFlashGame(para){ 11: //开始Flash游戏 12: rexseeScreen.setScreenOrientation(para.orientation); //将屏幕方向设为水平 13: if ( para.sensor ) { 14: rexseeOrientation.setRate('fastest'); //将传感器敏感程度设为最高 15: rexseeOrientation.start(); //启动传感器 16: } else { 17: rexseeOrientation.setRate('normal'); //将传感器敏感程度设为正常 18: rexseeOrientation.stop(); //停止传感器 19: } 20: rexseeFlash.clearKeyboard(); //清空键盘 21: if ( para.leftKeyboard ) rexseeFlash.setLeftKeyboard(para.leftKeys,para.leftKeyTheme,para.leftKeyboardStyle,para.leftKeyRowStyle,para.leftKeyStyle,para.leftKeyPressedStyle); //设置左键盘 22: if ( para.rightKeyboard ) rexseeFlash.setRightKeyboard(para.rightKeys,para.rightKeyTheme,para.rightKeyboardStyle,para.rightKeyRowStyle,para.rightKeyStyle,para.rightKeyPressedStyle); //设置右键盘 23: rexseeFlash.setSwfStyle(para.swfStyle); //设置Flash游戏区域的样式 24: rexseeFlash.show(para.swf,para.dialogStyle); //设置对话框样式并启动对话框 25: } 26: var paraKeyboardVersion = { 27: orientation: "landscape", //屏幕方向 28: sensor: false, //是否启用方向传感器 29: //设置左边键盘 30: leftKeyboard: false, //是否启用左键盘 31: leftKeys: "", //左键盘的按键,数字序列,同一行按键使用逗号分隔,不同行使用分号分隔,Rexsee自定义按键包括-2,-3,-4,-5,其余按键请参考http://developer.android.com/reference/android/view/KeyEvent.html 32: leftKeyTheme: "", //左键盘的样式,字符串,应在asset目录下创建以该字符串命名的文件夹,然后将按键图片(键值.png)放在该文件夹 33: leftKeyboardStyle: "", //左键盘的样式 34: leftKeyRowStyle: "", //左键盘中每一行的样式 35: leftKeyStyle: "", //左键盘中每个按键的样式 36: leftKeyPressedStyle: "", //左键盘中每个按键被按下时的样式 37: //设置右边键盘,参看上面左键盘说明 38: rightKeyboard: true, 39: rightKeys: "-1,-5;-2,62;21,22", 40: rightKeyTheme: "keyboard/default", 41: rightKeyboardStyle: "border-left-width:5px;border-left-color:#aaaaaa+#000000/2;background-color:#000000;", 42: rightKeyRowStyle: "", 43: rightKeyStyle: "", 44: rightKeyPressedStyle: "", 45: //设置Flash区域的样式 46: swfStyle: "", 47: //设置对话框的样式 48: dialogStyle: "", 49: //设置Flash游戏的地址 50: swf: "game.swf" 51: }; 52: var paraSensorVersion = { 53: orientation: "landscape", 54: sensor: true, 55: leftKeyboard: false, 56: leftKeys: "", 57: leftKeyTheme: "", 58: leftKeyboardStyle: "", 59: leftKeyRowStyle: "", 60: leftKeyStyle: "", 61: leftKeyPressedStyle: "", 62: rightKeyboard: true, 63: rightKeys: "-1;-5;-2;62", 64: rightKeyTheme: "keyboard/default", 65: rightKeyboardStyle: "border-left-width:5px;border-left-color:#aaaaaa+#000000/2;background-color:#000000;", 66: rightKeyRowStyle: "", 67: rightKeyStyle: "", 68: rightKeyPressedStyle: "", 69: swfStyle: "", 70: dialogStyle: "", 71: swf: "game.swf" 72: }; 73: 74: window.onRexseeReady = function(){ 75: //在页面装载完毕时运行 76: if ( rexseeBuild.getSdk()<8) { 77: alert("对不起,您的手机软件版本太低,不能运行该游戏,请使用Android2.2以上版本运行该游。"); 78: rexseeApplication.quit(); 79: } 80: if (!rexseeFlash.isReady()){ 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();"); 82: } 83: rexseeScreen.setScreenAlwaysOn(true); //总是点亮屏幕 84: rexseeScreen.setScreenOrientation('portrait'); //将将屏幕方向设为垂直 85: rexseeStatusBar.setStyle("visibility:hidden;"); //隐藏状态栏 86: } 87: window.onAjaxReturned = function(ajaxUrl,response){ 88: response = unescape(response); 89: if ( ajaxUrl == headerUrl) document.getElementById("header").innerHTML = response; 90: else if ( ajaxUrl == footerUrl) document.getElementById("footer").innerHTML = response; 91: else if ( ajaxUrl == jsUrl) eval(response); 92: } 93: window.onFlashDialogDismissed = function(){ 94: //在退出Flash游戏返页面时运行 95: rexseeScreen.setScreenOrientation('portrait'); //将屏幕方向设为垂直 96: } 97: window.onbeforeunload = function(){ 98: //在退出页面时运行 99: rexseeScreen.setScreenOrientation('auto'); //将屏幕方向设为自动 100: rexseeOrientation.stop(); //停止方向传感器 101: } 102: 103: var version = ""; 104: //Rexsee新增按键的回调函数 105: window.onKeyboardHelpPressed = function(){ 106: //对应键值:-2 107: if ( version == "keyboard" ) alert("左右键向左或向右,空格键跳跃。"); 108: else if ( version == "sensor" ) alert("左右倾斜手机向左或向右,虚拟键盘的空格键跳跃。"); 109: } 110: window.onKeyboardQaPressed = function(){ 111: //对应键值:-3 112: alert("QA pressed."); 113: } 114: window.onKeyboardHomePressed = function(){ 115: //对应键值:-4 116: if ( window.confirm("要退出游戏吗?") ) { 117: rexseeFlash.hide(); 118: rexseeApplication.quit(); 119: } 120: } 121: window.onKeyboardCancelPressed = function(){ 122: //对应键值:-5 123: if ( window.confirm("要退出游戏吗?") ) { 124: rexseeFlash.hide(); 125: } 126: } 127: 128: window.onOrientationChanged = function(){ 129: //如果启用方向传感器,在回调函数中向Flash游戏发送键值 130: var x = Math.round(rexseeOrientation.getLastKnownX()); 131: var y = Math.round(rexseeOrientation.getLastKnownY()); 132: var z = Math.round(rexseeOrientation.getLastKnownZ()); 133: if ( y > 10 ) { 134: rexseeFlash.keyDown(21); 135: } else if ( y<-10){ 136: rexseeFlash.keyDown(22); 137: } else { 138: rexseeFlash.keyUp(21); 139: rexseeFlash.keyUp(22); 140: } 141: } 142: </SCRIPT> 143: <STYLE> 144: body { margin:0px; background-color:#eeeeee;} 145: .imageButton { width:100px;height:100px; border:none; margin: 0 0 0 10; } 146: .section {border:1px solid;border-color:#f7f7f7 #7f9db5 #7f9db5 #f7f7f7;background-color:#ffffff;padding:15px;} 147: .gameTitle { font-size:24px;font-weight:bold; color:#F01D17;margin:15 0 15 0;} 148: .gameIntro {} 149: .gameVersion { font-size:20px;font-weight:bold; color:#F01D17;margin:10 0 15 0;} 150: .gameGuide { margin: 0 0 10 0; } 151: #copyright {background-color:#444444;padding:5px;color:white;font-size:10px;} 152: </STYLE> 153: </HEAD> 154: <BODY> 155: <a href="http://www.rexsee.com/flash/index.php"><img src='banner.png' width=100% border=0></a> 156: 157: <div class=section> 158: <div class=gameTitle>美羊羊卡丁车</div> 159: <div class=gameIntro> 160: 可爱的美羊羊是赛车高手哦,来体验下美羊羊马路杀手的感觉吧,美羊羊开车的速度可是会越来越快哦,小心呀! 161: <br><br>游戏目标:帮助美羊羊躲避路障,安全抵达终点。 162: <br> 163: </div> 164: </div> 165: <div class=section> 166: <table width=100%><tr> 167: <td valign=top> 168: <div class=gameVersion>虚拟键盘版</div> 169: <div class=gameGuide>左右键向左或向右,空格键跳跃。</div> 170: </td> 171: <td><img src="startNow.png" onclick="version='keyboard';startFlashGame(paraKeyboardVersion);" class=imageButton></td> 172: </tr></table> 173: </div> 174: <div class=section> 175: <table width=100%><tr> 176: <td valign=top> 177: <div class=gameVersion>重力感应版</div> 178: <div class=gameGuide>左右倾斜手机向左或向右,虚拟键盘的空格键跳跃。</div> 179: </td> 180: <td><img src="startNow.png" onclick="version='sensor';startFlashGame(paraSensorVersion);" class=imageButton></td> 181: </tr></table> 182: </div> 183: </BODY> 184: </HTML>
转:http://www.oschina.net/code/snippet_194999_6812
发表评论
-
微媒-腾讯微博开放平台应用 发布新版本了(2012.05.04更新)
2012-04-29 02:51 1076今天,微媒正式上线了。 介绍: ... -
[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
2011-12-16 16:50 1710在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到 ... -
Tab的多种典型用法总结(带动画)
2011-12-09 23:29 2938里面总结的是tab的一些比较典型的用法,带有多种动画效果,希望 ... -
Tab的多种典型用法总结(带动画)
2011-12-09 23:26 1里面总结的是tab的一些比较典型的用法,带有多种动画效果,希望 ... -
【转载】开发经验总结,很受用。
2011-12-07 23:09 11051、有一个方法,有一段 ... -
Android UI 设计秘笈
2011-11-27 22:02 1150好的UI设计可以帮助我们卖出更多拷贝,赚到更多钱^_^. A ... -
Android拍照、录像、录音代码范例
2011-11-27 22:01 2203RecordActivity.java package ... -
获取优酷、土豆、酷6、6间房等视频
2011-11-27 21:59 1362通过JAVA获取优酷、土豆、酷6、6间房、56视频,现在很多社 ... -
android手势识别ViewFlipper触摸动画
2011-11-26 16:23 1122今天给大家介绍一下如何实现androd主页面的左右拖动效果。实 ... -
Android开发返回拍摄的图片
2011-11-25 22:54 958第一步 try { Intent intent ... -
鉴客 Android中如何生成带圆角的Bitmap图片
2011-11-25 22:30 1973有时候我们在开发Android应用时,会遇到圆角图片的问题,那 ... -
鉴客 Android 的 MediaPlayer 多媒体播放器
2011-11-25 22:27 1135MediaPlayer 可以播放音频和视频,另外也可以通过 ... -
Android 轻松实现语音识别
2011-11-25 22:23 976苹果的iphone 有语音识别用的是Google 的技术,做为 ... -
分享Android CellLocation源码,基于Rexsee对象的基站定位功能
2011-11-24 16:05 1919使用Rexsee的基站定位(RexseeCellLocatio ... -
Android短信功能实现源码
2011-11-24 15:57 1874一段完整的Android平台上短信功能的接口源码,利用扩展的A ... -
Android中判断网络功能是否可用
2011-11-24 15:51 1313如何在Android中判断网络功能是否可用,代码如下: ... -
Android中如何生成带圆角的Bitmap图片
2011-11-24 15:46 879有时候我们在开发Android应用时,会遇到圆角图片的问题,那 ... -
[转]近百android程序源码贡献
2011-11-24 00:02 979Android PDF 阅读器 http://sourcefo ... -
Android imageView图片按比例缩放
2011-11-23 16:42 2915android:scaleType可控制图片的缩放方式,示例代 ...
相关推荐
半个小时移植Flash游戏到Android平台技术文档.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
本文档主要介绍如何将Flash游戏快速移植到Android平台上,利用Rexsee提供的工具和技术,大约半小时内即可完成。首先,由于大多数Android手机缺乏物理键盘,针对键盘操作的Flash游戏在手机上难以玩转,但Rexsee提供了...
在IT行业中,将Flash游戏移植到Android平台上是一个重要的技术议题,因为这涉及到多个技术领域,如ActionScript编程、Android应用开发、游戏引擎适配等。本篇文档将深入探讨这一主题,帮助开发者理解和掌握相关知识...
J2ME游戏移植到Android平台的技术要点 在本文中,我们将探讨如何将J2ME游戏移植到Android平台上。作为一名IT行业大师,我将详细地解释J2ME游戏移植到Android平台的技术要点。 首先, lets talk about the ...
- **半个小时移植Flash游戏到Android平台**:介绍如何将Flash游戏快速移植到Android平台,对于游戏开发者而言极具参考价值。 - **AndroidGallery实现CoverFlow**:展示如何利用AndroidGallery组件实现类似苹果Cover...
ch02》和描述《将本地PC游戏轻松移植到Android的秘技, jni, ndk》揭示了本书第二章节将详细讨论的内容,旨在教导读者如何将本地PC上的游戏通过特定的技术手段移植到Android平台上。特别提及了JNI(Java Native ...
本教程着重于教授开发者如何将原本开发在个人电脑(PC)上的游戏移植到Android平台。这是一个复杂的工程,因为它不仅需要对原游戏架构和内容有深入了解,还需要熟悉Android平台的开发环境和特性。 在本教程中,将会...
本篇文章将详细讲解如何在不使用Cygwin的情况下,将一个基于Cocos2d-x的Win32项目成功地移植到Android平台。Cygwin是一个在Windows上模拟Linux环境的工具,但在某些情况下,我们可能希望避免它的使用,例如为了减少...
AVG游戏Android移植框架源码主要涉及了将传统的AVG(冒险游戏)从桌面平台迁移到Android设备的技术,其中核心是吉里吉里(KRIKRI)引擎和NS(Nscripter)引擎的实现。这两款引擎在游戏开发者中非常流行,主要用于...
因此,移植Android RIL为Linux通用平台创建一个独立的RIL层,可以方便地支持各种电话应用的开发,提高系统的稳定性和兼容性。 2. Android系统中RIL层分析 RIL在Android系统中位于硬件抽象层,通过Socket与框架层...
Android系统移植与平台开发涉及到多个方面,包含对Android系统本身的下载、编译、移植过程,以及对开发人员如何针对特定硬件平台进行开发的指导。本篇文档的内容详细描述了Android系统移植与平台开发的前期准备、...
将 FFmpeg 移植到 Android 平台,可以让 Android 应用程序具备处理多媒体文件的强大能力,比如播放视频、音频,进行格式转换等。在 Android 上移植 FFmpeg 需要对 C/C++ 语言、Android NDK(Native Development Kit...
本项目是将一个使用LibGDX框架开发的Java游戏移植到Android平台的过程。以下是关于这个主题的详细知识: 1. **LibGDX简介**:LibGDX是一个开源的Java库,由Gdx-Latex、Gdx-Freetype、Gdx-Audio、Gdx-Network、Gdx-...
SSH移植到Android系统步骤 SSH(Secure Shell)是一种安全的远程登录协议,常用于Linux系统中。但是,Android系统并不具备SSH功能,这篇文章将讲述如何将OpenSSH移植到Android系统中。 Step 1: 获取OpenSSH源码 ...
HTML5 游戏移植到 Android 平台上需要使用 WebView 组件来加载 HTML5 游戏内容。在上述代码中,我们可以看到使用了 BaseH5Activity 作为基类,用于加载 HTML5 游戏内容。BaseH5Activity 是一个封装好的基类,提供了...
然而,"ntfs-3g移植到android平台-有效可行"这一标题表明,通过特定的技术手段,我们可以将开源的NTFS驱动ntfs-3g移植到Android系统中,从而实现对NTFS格式存储设备的读写功能。下面将详细介绍这个过程以及相关的...
《移植Java游戏开发框架LibGDX到Android平台的深度解析》 LibGDX,一个强大的开源游戏开发框架,以其跨平台特性和丰富的功能在Java开发者中广受欢迎。它允许开发者用一套代码同时创建桌面版、Android版、iOS版以及...
在本文中,我们将深入探讨如何将J2ME游戏移植到Android平台的关键点,以及两者之间的主要差异。 首先,让我们简要了解一下J2ME和Android的基础。J2ME(Java 2 Micro Edition)是Java 2的一个子集,设计用于嵌入式...
【标题】"J2ME移植Android引擎"涉及的是将基于Java Micro Edition (J2ME) 开发的游戏或应用转换到Android平台的过程。J2ME是Java平台的一个子集,主要用于移动设备和嵌入式系统,而Android则是一个开源的操作系统,...