flash里边,通过影片剪辑可以实现所有想要的效果。在深入学习影片剪辑之前,先学学使用官方的帮助文档。
下载帮助chm 百度网盘地址, 提取码是:z544;也可以自己搜索下载,推荐去天地会论坛找。
flash的帮助文档写的很好,不仅可以当字典来查,也是最好的学习教程,里边的例子都可以直接拿来用。
终于又回到flash里边了。
flash里边,插入元件,或者将舞台上一个元素转化为元件的时候,有3个选项:影片剪辑、按钮、图形。选中舞台上一个影片剪辑或按钮的话,打开属性面板,能看到一个输入框,可以输入实例名称,这样,我们就可以为这个元件的实例起一个名字,然后就可以通过这个名字来找到相应的元件实例进行控制。
函数,或者叫方法,目的是把一些经常用到的代码块单独拿出来,聚集到一起,供以后来用。为了能适应更多的场合,会有一定的抽象。
通过一个例子,看看as中是如何定义一个函数的:
function helloWorld(s:String):void{
trace(s);
}
as中用var来定义一个变量,用function来定义一个函数,上面的例子中定义了一个函数,名字叫helloWorld,括号中定义了调用函数时需要传入的参数:一个String类型的参数(s:Stirng),冒号后面是函数返回值得类型,没有返回值可以不写,或写:void。学过电路的应该能联想到,函数就相当于一个黑盒子,我们只需要知道给它一个输入值,就会按照一定的规则得到一个输出,具体内部怎么实现的,不需要知道(自己设计除外)。
最早接触html5(其实我都不想叫他html5,因为我用到的也就是一个Canvas,而html并不是只提供了这一个画布)的时候,用的引擎是LufyLegend,作为一个个人开发的引擎,已经很不错了,虽然有些bug,但是用来学习和做一些小游戏还是不错的。而且作者提供了很多开发实例,还有一本作者写的书。对于as开发者来说,选这个引擎入门确实受益良多。
熟悉了canvas之后,其实完全可以试着自己写一个渲染引擎,事件引擎稍难一点。虽然效率不高,但是只做一些益智类的小游戏,或者一些小应用还是完全可以的。
flash里边还有一个用的比较多的显示元件,没错就是SimpleButton,缩写是“SB”,设计人员喜欢,程序人员不喜欢的一个显示元件,其实只是作为按钮的话,还是很方便的。
就像as里边经常用MovieClip或是Sprite实现按钮一样,createjs里边完全可以用Sprite来实现(虽然没翻源码,猜想官方也是这么做的),所以如果够用的话就没必要自己再写一遍了。
ButtonHelper,这个名字不敢恭维,为什么不叫SimpleButton或者干脆叫Button,还是有其他深意?暂时先不管了,还是直接拿来用吧。
Sprite不是作为容器来用的,那么用什么做容器呢?直接用Container,记得as里边DisplayObjectContainer是不能被实例化的,又不一样了吧。
其他就没什么好说的了,源码放多了也只是乱,有用的就这一句,创建容器:
var con = new createjs.Container();//Sprite做了MovieClip的事,容器就用Container来做了。
然后就可以addChild了,然后就可以开始控制con的属性了。
遮罩。
flash里边做动画,很重要的几个概念:补间动画、遮罩层、引导层。
不知道怎么说,反正遮罩很重要。看完Sprite就想起来要看看遮罩了。
canvas本身就能实现遮罩效果,createjs里边的遮罩估计也就是用了canvas里原生的东西,也没做什么更多的处理。
还是先看代码:
基础的都学习了,接下来就是中级的了。
学习as的时候,最开始都是用MovieCLip,然后水平提高一点,用的最多的就是Sprite了,为了效率。
createjs里边的Sprite相当于as里边的MovieClip,有stop/play/gotoAndStop/gotoAndPlay等方法。
先看代码:
看过Text之后,再来看看Bitmap,用js的话,graphic估计会用的很少,大多数时候还是用位图的。
html里边自己的image就挺方便的,canvas处理image也挺方便。这里边没有BitmapDate,和as里不一样,为什么没有,可以看看Canvas的API,本身就提供了对于像素级的处理。LufyLegend里边提供了BitmapDate的封装,不知道createjs以后会不会也提供。
敲完前三个例子,就算入了门了。接下来熟悉一下常用的类,先从基本的显示对象开始,as里边最基本的显示对象就3种:graphic、textField、bitmap,createjs里边也是。想想也是,屏幕上能看到的无非就是这三种:矢量图、文本、位图。
shape里边已经用过graphic了,就不再单独拿出来了。先来看一下TextField,createjs里边叫Text。
还是直接上源码,个人理解都在注释里: