30
2015
01

(十一)第一个小游戏

好多人都是上来就做游戏的,我也是,flash还一点都不会,就想着做一个游戏,然后一边碰壁一边学,最后第一个游戏还是夭折了。记得有一本书写的很好,好像叫《第二游戏说》,所以第一个游戏失败的话是很正常的,不要不肯放手。第一个游戏的作用不是做出来炫耀,而是带我们入门,让我们兴趣盎然的去了解一个工具,让我们知道为了做出一个游戏,我们还需要学习哪些东西。

经过前面的积淀,总算可以做游戏了,但是也不能好高骛远,做个超级玛丽、坦克大战的话还是算了。我们的第一个游戏很简单,点击舞台十次。效果如下:

30
2015
01

(十)代码实现动画

动画,无非就是定时改变显示的内容。flash里边的动画是基于帧的。帧频就是每一秒播放多少帧,1/帧频 就是播放一帧对应的时间。

将帧频理解为“每秒播放多少帧”不如理解为“flash的刷新频率”更合适,因为,如果我们在某一帧写上stop(),虽然不会再向下播放,但是播放的swf动画依然在不停的刷新。

每次刷新时,flash都会为我们发送一个事件enterFrame,同样,打开帮助,从MovieCLip的事件里边找到enterFrame

30
2015
01

(九)事件

用代码实现动画,或是与用户的互动,就必然要用到事件,而事件又不是很好理解,所以有必要单独拿出来说一下下。

事件,可以理解为消息。任何一个消息都有源头,我们暂时不需要知道,我们只需要知道,在as3中都有哪些消息,我们如何获得这些消息,获得之后又能做什么。



28
2015
01

webview中使用swf的各种坑

有一个安卓平板上的项目,打算用webview加载flash来实现,由于之前没有做过,就开始各种搜索和尝试。webview里边单纯播放swf还是很好实现的,在深入一点就各种坑了。

其实webview就是一个简单的浏览器,实际上就是在安卓里自己做了一个浏览器,用浏览器加载页面来显示flash 。

首先是实现交互,as与js的交互,以及as与java的交互(java和js的交互比较简单了)。

1、第一个坑,as与js的交互——安全沙箱问题。

2、第二个坑,单击变双击。

3、第三个坑,平板上点击响应慢

27
2015
01

(八)as帮助文档

flash里边,通过影片剪辑可以实现所有想要的效果。在深入学习影片剪辑之前,先学学使用官方的帮助文档。

下载帮助chm     百度网盘地址, 提取码是:z544;也可以自己搜索下载,推荐去天地会论坛找。

flash的帮助文档写的很好,不仅可以当字典来查,也是最好的学习教程,里边的例子都可以直接拿来用。

27
2015
01

(七)影片剪辑

终于又回到flash里边了。

flash里边,插入元件,或者将舞台上一个元素转化为元件的时候,有3个选项:影片剪辑、按钮、图形。选中舞台上一个影片剪辑或按钮的话,打开属性面板,能看到一个输入框,可以输入实例名称,这样,我们就可以为这个元件的实例起一个名字,然后就可以通过这个名字来找到相应的元件实例进行控制。

27
2015
01

(六)函数

函数,或者叫方法,目的是把一些经常用到的代码块单独拿出来,聚集到一起,供以后来用。为了能适应更多的场合,会有一定的抽象。

通过一个例子,看看as中是如何定义一个函数的:

function helloWorld(s:String):void{

    trace(s);

}

as中用var来定义一个变量,用function来定义一个函数,上面的例子中定义了一个函数,名字叫helloWorld,括号中定义了调用函数时需要传入的参数:一个String类型的参数(s:Stirng),冒号后面是函数返回值得类型,没有返回值可以不写,或写:void。学过电路的应该能联想到,函数就相当于一个黑盒子,我们只需要知道给它一个输入值,就会按照一定的规则得到一个输出,具体内部怎么实现的,不需要知道(自己设计除外)。

23
2015
01

(〇)createjs-写在前面

最早接触html5(其实我都不想叫他html5,因为我用到的也就是一个Canvas,而html并不是只提供了这一个画布)的时候,用的引擎是LufyLegend,作为一个个人开发的引擎,已经很不错了,虽然有些bug,但是用来学习和做一些小游戏还是不错的。而且作者提供了很多开发实例,还有一本作者写的书。对于as开发者来说,选这个引擎入门确实受益良多。

熟悉了canvas之后,其实完全可以试着自己写一个渲染引擎,事件引擎稍难一点。虽然效率不高,但是只做一些益智类的小游戏,或者一些小应用还是完全可以的。

23
2015
01

(九)createjs-ButtonHelper

flash里边还有一个用的比较多的显示元件,没错就是SimpleButton,缩写是“SB”,设计人员喜欢,程序人员不喜欢的一个显示元件,其实只是作为按钮的话,还是很方便的。

就像as里边经常用MovieClip或是Sprite实现按钮一样,createjs里边完全可以用Sprite来实现(虽然没翻源码,猜想官方也是这么做的),所以如果够用的话就没必要自己再写一遍了。

ButtonHelper,这个名字不敢恭维,为什么不叫SimpleButton或者干脆叫Button,还是有其他深意?暂时先不管了,还是直接拿来用吧。

23
2015
01

(八)createjs-Container

Sprite不是作为容器来用的,那么用什么做容器呢?直接用Container,记得as里边DisplayObjectContainer是不能被实例化的,又不一样了吧。

其他就没什么好说的了,源码放多了也只是乱,有用的就这一句,创建容器:

  1. var con = new createjs.Container();//Sprite做了MovieClip的事,容器就用Container来做了。

然后就可以addChild了,然后就可以开始控制con的属性了。