找个锤子-等待review

实验,跟风性质的小游戏.

主要测试了Admob广告, 微信ANE, 本地化

iPhone4在屏幕元素高速移动时有些卡顿, 还是需要进一步优化.

iPhone5s,iPad4,iPad air,运行都不错. 可能是硬件比较强悍吧.

没有用到对象池, 因为方块移出屏幕后马上重设位置了.

 

 

 

 

 

 

 

 

 

 

 

New Game: MazeJumper

利用业余时间, 断断续续的开发, 小游戏算是基本完成了. 本来要做成可以选择角色的, 后来时间不够就搁置了. 角色是静态图, 没用到骨骼.

由Adobe AIR技术开发, 使用了基于Stage3D的Genome2D框架.

包含的ANE: 本地提醒, Alert, 社会化分享(Adobe官方ANE), 内付费购买(Adobe官方ANE), iAd(Adobe官方ANE), GameCenter(Adobe官方ANE)

但正式上线后发现广告和游戏中心罢工了, 目前还在查找原因.

作图占了一半时间, 苦手.很多地方都能看出相当初级的作画功底:

 

玩法非常简单, 只要选择下一步要跳跃的方块即可.需要注意的是, 角色在跳跃的同时, 地面也会向下移动一个方块的距离, 别选错了.

如果掉到虚无(黑色区域)中, 不用紧张, 立即(动作一定要快)使用自己技能栏中能脱离虚无的技能(位置转换, 传送, 地面生成等), 很快就能转危为安的.

灵活使用方块上面的或自己技能栏的技能可以随意调戏和虐杀其他角色了.

欢迎试玩: MazeJumper

 

Flash Builder 找不到连接的设备

真机调试时遇到个问题:  “找不到连接的设备”

 

 

 

 

 

 

 

 

 

 

 

Google之, 原来是少了个文件sqlite3.dll  (参考文章If you are unable to find attached iOS device on Flash Builder 4.7 Beta 2…)

把这个文件放到eclipse\plugins\com.adobe.flash.compiler_4.7.0.349722\AIRSDK\lib\aot\bin\iOSBin文件夹下即可.

点击刷新, 成功:

Genome2D探索:添加鼠标事件

原文:http://bbs.wefdc.com/thread-1492-1-1.html

书接上文, 我们继续在startApp方法中加入两行代码:

node.mouseEnabled = true;
node.onMouseClick.add(nodeMouseClick);

首先启用鼠标监听功能, 然后添加鼠标单击事件
注意, G2D的事件和AS3的事件是有区别的.
G2D采用的是Singal事件流机制.
想更多了解这种机制的, 可以点击此链接
接下来我们完成事件监听函数:

private functionnodeMouseClick(signal:GMouseSignal):void
{
node.transform.setColor(Math.random(),Math.random(),Math.random(),1);
}

这个函数的参数是G2D内置的GMouseSignal类
我们在这个函数中实现的效果是更改物体的色彩.保留透明度不变, 随机修改RGB这3个数值.

P.S. 这次我们使用了最新的G2D的Genome2D.0.9.1.1121.swc,

注意有改动的地方是:

//G2D上下文配置
var config:GContextConfig = new GContextConfig(new Rectangle(0,0,960,640));
GContextConfig类初始化时传Rectangle的参数,设定舞台.

全部代码如下:

package
{
import com.genome2d.components.GCamera;
import com.genome2d.components.renderables.GSprite;
import com.genome2d.context.GContextConfig;
import com.genome2d.core.GNode;
import com.genome2d.core.Genome2D;
import com.genome2d.g2d;
import com.genome2d.signals.GMouseSignal;
import com.genome2d.textures.GTexture;
[…]

Genome2D探索:建立一个简单的Genome2D应用

原文:http://bbs.wefdc.com/thread-718-1-1.html

现在2D加速框架越来越多了, 目前比较火的, 资料最多的还是Starling.
最终我选择了Genome2D(以下简写为G2D),不为别的, 就为他的效率.

这次我们使用Flash Builder 4.6, 以建立一个IPHONE应用为例, 介绍下G2D框架的使用方法.

1.建立AS移动应用:

2.填写项目名称, 选择SDK版本为AIR 3.3 Beta1

3.点击下一步,选择平台为Apple iOS

4.点击下一步, 选择G2D的SWC文件.

5.选择0.9.1, 这个是此教程编写时最新版本

6. 点击完成后, 按F11键, 在弹出的对话框中(如下图所示), 选择on desktop及Apple iPhone4选项

7.打开STUDY_G2D-app.xml配置文件, 修改以下配置, renderMode这个一定要选择direct, 否则无法使用Stage3D, 当然G2D也无法使用了.

上面就是程序配置过程. 接下来进行代码编写

package
{
import com.genome2d.components.GCamera;
import com.genome2d.components.renderables.GSprite;
import com.genome2d.context.GContextConfig;
import com.genome2d.core.GNode;
import com.genome2d.core.Genome2D;
import com.genome2d.g2d;
[…]

通过AIR Native Extension在AIR应用中加入iAd广告(一) —— Flash Builder篇

 

目前通过Adobe AIR发布iOS应用的案例已经很多了. 随着AIR runtime及AIR SDK的不断升级,AIR App for iOS在iDevice运行流畅度大大提高.感谢Adobe带给大家这么好的技术和工具.

在苹果商店中, 可直接发布付费应用获得收益, 也可免费发放并通过广告得到分成. 但AIR不支持原生iAd广告组件.这时只能通过ANE(Air Native Extension)调用苹果原生API. 官方ANE插件站推荐了iOS iAd Native Extension for Adobe AIR插件. 最近无意中在Google Code找到iad-air-ios,重要的是, 它是免费的

下面通过Flash Builder 4.6介绍下使用方法.

1. 打开FB4.6, 新建ActionSript Mobile Project, 本例中使用iAdTest为项目名.去掉黑梅和安卓的选项, 只勾选iOS系统:

 

2. 前往iad-air-ios, 下载最新的插件 iAdPrefixed.zip 并解压.

3.打开iAdTest项目属性,选择ActionScript Build Path, 切换到Native Extensions, 选择第2步解压的ANE文件并添加到项目.

 

4. 敲入主程序代码:

package
{
import com.adobe.nativeExtensions.AdBanner;
import com.adobe.nativeExtensions.AdBannerEvent;
[…]

输出AIR 2.0 EXE文件(zt)

原文地址:
http://blog.everythingflex.com/2009/11/17/your-first-air-2-0-exe-file
在原文的基础上, 把AIR的配置也加上了.以Windows平台, Flash Builder beta 2为例.
首先下载AIR 2.0 SDK.
然后根据说明配置SDK:
1.复制现有的SDK文件夹到当前路径并重命名;

2.将下载的AIR 2.0 SDK解压, 并将里面的文件复制并覆盖到新SDK文件夹中.

3.打开Flash Builder,打开项目Properties对话框, 选择Flex Compiler
4.点击Configure Flex SDKs
5.添加刚刚合并的Flex 和 AIR 2 SDK文件夹
(也可打开Preferences窗口,Flash Builder->Installed Flex SDKs添加)

6.此时可以使用AIR 2 API了.
然后我们新建一个程序:

打开配置文件,版本已经变为2.0beta了:

程序代码:

之后发布AIR安装包, 安装运行, 界面如下:

接下来, 按照Rich Tretola的方法发布exe版:
运行(若提示找不到java, 可先配置环境变量):
adt -package -target native D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.exe D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.air
之后可以在项目文件夹下看到生成了Air2Test.exe程序.

运行:

还能输出dmg和rpm文件:
adt -package -target native D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.dmg D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.air
adt -package -target native D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.rpm D:\Study\Adobe\Flash\10.1\Air2Test\Air2Test.air
-target native只有三个选项:exe, dmg, rpm.
当然, Air2Test.exe的顺利安装仍然需要AIR运行时.
补充:
如果生成EXE文件, 那么一定要在WINDOWS操作系统下, 同理, 若为MAC生成安装文件, 则一定要在MAC操作系统下才可以

AIR – 文件分割混排

做了一个文件分割并混排的工具, 实际用处有待挖掘 -__-
文件安装:ByteArrayTool.zip(需要AIR1.5.1)
选择文件:

slice num是每个文件将要分割的块数
buffer size确定保存文件时缓冲区大小
点击运行, 将所有文件分割并混排.

点击保存按钮, 确定保存路径及文件名, 开始保存:

最后保存的文件由配置文件和文件碎片组成, 结构如下:

解文件就容易了, 把上述过程反向一下就OK, 这里写好了一个类供大家使用:
点击下载此文件
举个例子:
URLLoader加载完成时, 使用URLLoader.data做为数据源:
var bytes:ByteArray = urlloader.data;
var decrypt:DecryptByteArray = new DecryptByteArray();
decrypt.decrypt(bytes);
//假设第一个文件是图片
var img:ByteArray = decrypt.getBytesFileAt(0) as ByteArray;
img.position = 0;
//将图片加到舞台上
var loader:Loader = new Loader();
loader.loadBytes(img);
addChild(loader);

AIR List组件右键时选择列表项

当在List中某个item上点击右键时, 同时也要将该项选中.
可以通过以下方法实现.
首先使用自定义的itemRenderer.
在itemRenderer中注册菜单事件Event.DISPLAYING
在事件处理方法中, 派发鼠标事件:
MouseEvent.MOUSE_DOWN,和MouseEvent.MOUSE_UP即可.
或者派发自定义事件, 由父级捕获并处理.
但有一点要注意, 派发MouseEvent.MOUSE_DOWN事件后, 一定要派发MouseEvent.MOUSE_UP事件, 否则会导致拖拽功能失效(目前只发现这一点).
如果只dispatch了MouseEvent.MOUSE_DOWN, 跟踪源代码, 可以发现在ListBase类,mouseMoveHandler方法里处理拖拽的判断语句中:
DragManager.isDragging值始终是true.
继续跟踪到mx.managers.NativeDragManagerImpl类,
public function get isDragging():Boolean
{
return flash.desktop.NativeDragManager.isDragging;// || bDoingDrag;
}
到这里无法继续跟踪了, 返回数值true
不知道是不是AIR的bug.
附带项目代码:
点击下载此文件

AIR灵异现象

电脑变慢,瞟了一眼任务栏上的任务管理器,CPU正常。
最后实在是慢得不能忍受了,打开任务管理器,一看就傻眼了,300多个进程。虚拟内存达到了3GB。
N(N>200)多的ADOBEA~1.EXE进程,其中有几个占用12MB内存,其他的均在300KB左右。
难道是中毒了?随手关了几个,但这个进程数还在缓缓的增加。
把与ADOBE有关的程序都关了,无效果。
上网查找,发现这应该是AIR运行时程序,Adobe AIR Application Installer.exe或Adobe AIR Updater.exe。
但源头是哪里呢?难道是死锁了?问题是我有好久没有进行AIR程序开发调试了。
诺大一个桌面就一个Firefox在运行,恍然大悟,是页面中的AIR App吧。
嗯,就是这个页面:
http://onflash.org/ted/2008/12/adobe-groups-flash-media-server-group.php
截图,关闭页面,一切都恢复正常了。
再次打开ted的页面,发现ADOBEA~1.EXE生成后会自动销毁。
之后反复测试,这种现象再也没有出现,看来今天中彩了

Page 1 of 3123