Flash游戏开发中应该使用的显示层次结构和代码结构

ActionScript2.0ActionScript3.0有很大的区别,3.0是真正的面向对象语言,而且在内置类的结构体系上要更加合理易懂,同时显示编程的引入以及简单清晰的显示层次结构更是ActionScript的一次升华,将2.0中不推荐的做法从一定程度上摈弃。

那么今天来说说Flash游戏开发中三种层次结构和代码书写的比较(无论是2.0还是3.0都适用)。

 

第一种:按照游戏过程的顺序将需要使用的所有影片剪辑逐次放到主时间轴帧的场景中,同时代码大部分放到影片剪辑或者按钮的脚本中。如果这是一部电影,我的评分是★☆☆☆☆。

第二种:游戏中的各元件按从外到里的顺序分别为:场景[文档[游戏[游戏中的元件]]],而代码统一放到主时间轴的一个叫action层的第一帧中。

解释一下,场景 即舞台,它里面只放一个影片剪辑那就是文档,文档就像ActionScript3.0中的文档类,文档中放有游戏中的诸如生命值显示等影片剪辑和一个叫做游戏的影片剪辑,而游戏中“可以玩的东西”都放到这个游戏的影片剪辑里,这样如果是在rpg游戏中,我们要控制地图移动,则只要控制这个游戏影片剪辑移动和主角反向移动即可。而代码都放到第一帧中也是flash帮助中推荐的最佳做法,不过就是经常需要在某个影片剪辑播放结束时执行一些代码,如停止播放这个影片剪辑,则需要另想它法,有三种做法,1将这类少量的代码放到这个影片剪辑的最后一帧中,此时仍然能保证大部分代码在主时间轴的第一帧;2计算该影片剪辑总共要播放的时间毫秒,用SetTimeout方法去执行播放后的代码;3.EnterFrame事件中判断当前帧是否为最后一帧来执行播放后的代码。

这种做法我的推荐指数是★★★★☆

第三种:完全采用面向对象的编程方式,影片剪辑的层次结构(在AS3中叫做显示层次结构)采用第二种方法中的层次结构,但游戏中需要用代码控制的影片剪辑或者是经常变化在每次打开游戏都“不固定”的影片剪辑,不要放到舞台上去,而由AS自动产生,而代码全部放到外部文件中。甚至可以做的“绝”一点:AS2中舞台上只放一个命名为“文档”的空影片剪辑(即影片剪辑中什么都没有),它绑定到外部的一个类,程序的执行从这个类的构造函数开始,这种更像是应用程序的开发;AS3中则不放任何显示对象,只接把外部的一个类名写到该flash属性的文档类框中。更“绝”的做法就是像FlashDevelop中的开发方式,所有的代码都在外部,FlashDevelop产生的swf文件用反编译工具导出后则发现无论是舞台或者时间轴上还是库里面,什么都没有,只有属性的文档类框中有先前自己定义的一个类名。

这种做法我的推荐指数是★★★★★

原文地址:https://www.cnblogs.com/pains/p/1614192.html