posts - 20,  comments - 13,  trackbacks - 0
一、素材篇
素材有三种,一种是美术提供的各种静态图片,对此我们要做的是将这些静态图片用脚本转成swf为我们所用。另一种是在Flash创作工具(IDE)中自己创建,这部分需要用到的主要是FLash CS4的知识,如时间轴、图层、遮罩、各种工具、补间、少数简单动作等等。第三种是通过用AS3的绘图API或者3D API去绘制资源,通常这种占内存最小,并且扩展性较强,但是难度较高。

获得以及对素材的加工处理工具有PhotoShop+其脚本、Flash IDE+JSFL脚本、AS3帮助文档

通过PS的记录动作可以执行一些重复性事情。另外将图片转化为png-8的,可以减少将近一半以上的资源大小,代价是图像边缘有锯齿,并且无半透明度。。

二、代码篇
代码分两种,一种是插在时间轴上,一种是独立做成类文档。前者容易写,但是扩展和管理不好。后者易于管理、扩展,逻辑清晰,但是和Flash IDE的交互不够,通常我们会通过FB等其他开发工具来弥补这一点。

编写代码的工具有Flash IDE中的Flash 文档、Flash IDE中的AS 3文档、Flash Builder 4(以前是叫做FLex Builder 3)、FDT(我用的是Eclipse)。

三、结构篇
尽量用面向设计模式的思想去组织你的模块。另外就是拥有个人的类库。(算法类库、3D类库、图形特效类库、网络通信类库、内存管理类库、文本处理类库、声音编码解码类库)。

四、内存篇
通常一个单打格斗游戏,可以做到swf只有3M左右,占内存不超过100M,而且动作相当华丽。另外还有些通过矢量图制作的Flash网页无交互游戏,能够达到接近0内存的消耗,且总资源非常小。
减少对内存的消耗有这么些方法:
1.尽量用矢量图。
2.对于图片的话,可以通过BitmapByte格式来减少它存放在内存的空间。
3.对于资源是swf的话,它对内存的消耗是这样的:每张图片长*宽*4/1024,也就是说如果你有一张1024*768的图片,尽管由于你把背景设置为透明,使得图片大小只有10K,但是通过Loader读到内存,他的大小是1024*768*4/1024约等于2.8M。增长了将近300倍。(估计原因是透明点也是会在Flash中保存的,类似于0Xff000000。)
4.防止内存泄露:当对象不再需要的时候果断置为null,每个侦听器在它该remove的时候果断remove,要删除一个对象里面的所有子对象的所有引用,才能够删除该对象,定时调用GC执行强制垃圾回收。一种方法是当需要完全删除该对象时,调用一个自定义函数rever,该函数将清空该对象的所有子对象、所有动态属性、所有侦听器。
5.没有用到的东西尽量少加载到swf中。
6.对对象进行引用时一定要想清楚。(局部变量如果被addChild到舞台,也是会占内存的)



posted on 2010-04-22 19:17 ACong 阅读(165) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用链接

留言簿

随笔档案

文章档案

广商豪杰

搜索

  •  

最新评论

阅读排行榜

评论排行榜