1、
命名规范:
(1) 元件命名:
由于每个人开发FLASH时使用的命名习惯都未必相同,若是一个人开发时,并不存在什么问题,但多人同时开发时,若不遵循一定的命名规则,则容易出现混乱,所以每次开发前都要花大量时间来理解源文件中的各个元件名称,使得开发效率不高。因此应该统一命名规范。
通常使用的命名规范为:若该元件为影片剪辑,应以能代表该影片剪辑的英文或中文拼音为名,后面加_mc,代表MovieClip。例如建立一个圆,则有circle_mc,若该元件为一按钮,则后面应加_btn,若为位图或者其他图片形式,个人觉得应以_bmp或者_pic作为代表。这样整个图库就清晰明了了,使得开发中的每个都能了解大家的元件,也较容易防止重复命名。
(2) 文件夹命名与管理:
因为在多人开发中,每个人都会有自己的工作,如果分工仔细,每个人制作一个页面,再用loadmovie等形式加载调用,这样开发起来相对独立,则文件夹是否严格命名,甚至是否使用文件夹,则可以由个人喜好决定。但如果是多人同时开发相同的源文件中的内容,则文件夹就显得格外重要。这样的图库容易管理,每个人开发负责的那一部分工作后,只要把图库中的文件夹覆盖到需要汇总的源文件中,即可重新汇总文件。在多人开发中,则应以个人的编号或者英文等可以标识不同人的标志来命名根目录文件夹的名字,而根目录下的文件夹则以其负责的工作的具体内容决定。但最好在后面加上_xxx,代表该开发者的信息,这样就可以防止文件夹的重复命名。
(3) 层的命名:
每一层都应以其相应的内容进行命名。许多人为了方便一时,在开发时都使用默认的层命名,例如layer1、layer2或者图层1、图层2等等,等到需要修改的时候,对着几十甚至上百个图层,那时候才知道图层命名的重要性。若图层非常多的时候,也应该使用文件夹包含其相关内容,在需要寻找的时候,方便快捷。此外,现在的FLASH许多都用到AS和LABEL,因此应该建立专门的图层来存放AS和LABEL。LBAEL应该置于最上层,AS层其后。方便查找使用。
2、 编码规范
在FLASH中,许多的特效、数据传输、接收都与Actionscript密不可分。而使用AS来代替图形MC来实现一些功能,也是减少FLASH体积的好办法。许多美工使用AS的时候,只知道随便用些gotoAndPlay()、paly()、stop()等等简单的命令。因此不需要AS编码规范。但若开发的是FLASH的RIA使用到许多的AS,此时,编码规范就显得非常重要。
FLASH AS1.1和AS2.0的语法与JS相同,所以变量的定义也相同,即不是强类型的定义,当然也可以在定义的时候就定义了该变量的类型,这是一个好习惯,也应该推荐,而不是求一时的方便,随便的一个var i,这样到要查错的时候,要查找出问题就不是一件容易的事情了。而AS3.0的语法,因为较接近JAVA与.NET的语法,看起来比较严谨规范。由于大部分的编码规范与其他编程语言的规范基本相似,因此只说不同的部分。众所周知,FLASH中可以在按钮、影片剪辑中编写代码,也可以在时间轴中编写代码。个人觉得应该在时间轴上编写代码,而并非在相关的元件中。因为当开发的项目较大时,使用较多的元件,若在每个元件中都添加那么十来行代码,到修改或有错误的时候,想修改或查错,那是一件很痛苦的事情。若每个元件都给实例命名,把该元件需要的代码放在时间轴上统一管理,那么哪里需要修改就一目了然,哪里出现错误也比较容易发现。另外一个需要注意的是,一些特效使用到事件触发之后,就跳到特定的帧数。这种情况应该在时间轴上加一个名为LABEL的层,而不是在代码中写跳到具体的哪一帧。例如:gotoAndPlay(30),30是一个特定的帧数,则在LABEL层的第30帧上插入空关键帧,在该帧加入标签here,代码应该改为gotoAndPlay(“here”)则若以后修改的时候,就不必要修改具体的帧数,只用把LABEL相应的帧数标签拖动到相关的帧就可以。
此外,需要注意的是AS程序员应该使用统一的AS语法,而不是一些使用1.1的,一些使用2.0的,更有些使用3.0的。
3、多人开发的分工与页面分布
随着项目的功能增多,多人开发势在必行,然而多人开发却又需要解决许多问题。例如:任务分配。如何更好地结合美工和AS程序员之间的工作。使得他们各有所做,不用浪费各自的时间来等待他人的工作。根据本学期的几个项目总结了一下多人开发时候应该注意的问题。
(1) 网站方面:
①分工问题:
由于FLASH需要炫丽的画面,因此优秀的美工一定不可以少,但美工又大多只懂得简单的AS,而项目中许多的功能却需要AS来实现。因此美工与AS程序员必须分工。但有可能出现美工制作界面的时候,AS程序员则什么都干不了,只能等美工完成了界面之后,才能进行AS的添加及效果的实现。这样一来会使影响开发效率。个人想法为利用时间差来互补各自的工作。
当项目需要与外部数据进行交互的时候,美工应该尽快把界面完成,与此同时,AS程序员则应该把与外界的交互部分的代码实现,并利用一些测试的方法测试代码实现的功能是否符合要求,有无错误等等。而负责与数据库端的操作的程序员也应该开始工作,完成与FLASH传输的接口等程序的代码。当美工完成一部分界面之后,AS程序员就可以接着美工的界面进行AS加工,完成相关的功能,此时各人员的工作基本可以同步进行。
②各页面的分布结构:
在整个网站的设计的时候,就应该分拆页面,把每个页面都独立地表现为一个FLASH,这样既可以分散文件体积,又可以方便各个人员的开发,当美工完成一个页面之后,AS程序员就可以开始进行AS加工,美工则继续下一页面的设计。这样的工作顺序,不需要等待工作,而且页面出现了什么问题,都只是该页面有问题,不会影响其他页面的工作。减少互相之间的影响。
③源文件出现问题时:
由于上述两点,所以每个页面之间是没有太大的关联,一旦文件有什么问题的话,可以只处理该问题文件,但是也要协调美工与AS程序员之间的关系。美工可以没有AS的源文件,AS程序员应该有一份完整的源文件,如果是美工方面出了问题,美工和AS程序员都拥有各自的源文件,这样美工修改部分元件的同时,AS程序员可以继续他的工作。等到美工完成修改之后,AS程序员只需把没有删改过的图库中的文件覆盖美工的那份源文件中图库的相应文件即可。如果问题出在了AS程序员上,就比较麻烦,如果要改的AS地方比较多,美工在此其间可以选择继续其他页面的工作,如果比较少,则可以AS程序员修改完成后继续页面的设计。
④源文件汇总:
个人觉得应该交给AS程序员来汇总,因为美工的绘画不会对程序有影响,但是如果交由不懂AS的美工来汇总,很容易删错代码,这样修改的工作就会比较多,因此选择AS程序员来汇总会比较好。
(2) 应用型程序
作为类似C/S模式的应用程序类型的项目,由于该类型对美工要求并不高,更注重的是实效性,则分工应以功能划分,即不同的人员分配不同的模块,生成不同的子页面,再由main页面调用。
4、 减少FLASH体积问题:
FLASH相对于AJAX,个人觉得FLASH体积相对较大,因此如何优化减少其体积是很重要的。
①拆分FLASH
如果用一个FLASH开发整个网站,其体积可能达到大大的几百K,甚至上M,若能把它拆分为N个小模块,则体积分成了N份,最初显示可能只是几K或者几十K的框架,其余部分都加载该框架中,当然这里涉及了用户界面是否友好的问题。
②FLASH中图片文字的使用
如果FLASH中包含了许多的位图,则将使FLASH体积大好几倍,但未必每张位图都必须包含进FLASH中的,例如一些可以用FLASH的钢笔功能描绘出来的图片画面,则可以先导入位图,描绘出来之后,就把位图删除,整个FLASH只包含特殊的图片,而一些在FLASH中打入的特殊字体则应把它打散来存放。
③应该在外部导入数据
网站中有图片浏览等功能。此时的FLASH使用到的图片等数据就应该在外面导入,而不应该将其包含在FLASH中,这样做一来可以减少FLASH文件的体积,二来可以方便更新维护。因此把这些数据和图片放在外部非常必要。当然,也涉及到界面友好的问题。但需要注意外导文件数据存在的一些问题。例如:网站应使用常用的字体,如果用了特殊字体,则外导数据显示的仍然是默认字体,除非把该特殊字体包含进FLASH中,但是这样一来FLASH体积又会变大好几倍,要慎用。还需要注意中文乱码问题。
④遮罩的使用
如果使用图层和遮罩层来实现遮罩效果,其FLASH体积会较使用AS的setmask()的FLASH体积大些,并且这种遮罩对于外部导入的数据显示不起作用。解决方法是在该被遮罩层中使用滤镜。选择滤镜中的一种效果,例如模糊,但要把其参数设置到与没有使用遮罩相同即可。但使用setmask()则不会出现这种情况。
5、 界面是否友好的问题:
如何才能使得界面看起来较友好,除了通常知道的就是客户反馈中得到的了。在FLASH体积较大的时候,应该在每个FLASH子页面都加入LOADING进度条之类的东西,告诉你的访客,页面是没有加载完,在等待中,而不是出现了其他的问题。LOADING还可以制作成一些小游戏之类的,让加载文件不需要这么烦闷。在加载图片的时候也应该加入LAODING,图片加载完成后,应该有一个渐变的过程,这样会让人觉得比较适应。还有就是加载视频以及音乐的时候,也应该有相应的LOADING,道理是一样的。
(1) 元件命名:
由于每个人开发FLASH时使用的命名习惯都未必相同,若是一个人开发时,并不存在什么问题,但多人同时开发时,若不遵循一定的命名规则,则容易出现混乱,所以每次开发前都要花大量时间来理解源文件中的各个元件名称,使得开发效率不高。因此应该统一命名规范。
通常使用的命名规范为:若该元件为影片剪辑,应以能代表该影片剪辑的英文或中文拼音为名,后面加_mc,代表MovieClip。例如建立一个圆,则有circle_mc,若该元件为一按钮,则后面应加_btn,若为位图或者其他图片形式,个人觉得应以_bmp或者_pic作为代表。这样整个图库就清晰明了了,使得开发中的每个都能了解大家的元件,也较容易防止重复命名。
(2) 文件夹命名与管理:
因为在多人开发中,每个人都会有自己的工作,如果分工仔细,每个人制作一个页面,再用loadmovie等形式加载调用,这样开发起来相对独立,则文件夹是否严格命名,甚至是否使用文件夹,则可以由个人喜好决定。但如果是多人同时开发相同的源文件中的内容,则文件夹就显得格外重要。这样的图库容易管理,每个人开发负责的那一部分工作后,只要把图库中的文件夹覆盖到需要汇总的源文件中,即可重新汇总文件。在多人开发中,则应以个人的编号或者英文等可以标识不同人的标志来命名根目录文件夹的名字,而根目录下的文件夹则以其负责的工作的具体内容决定。但最好在后面加上_xxx,代表该开发者的信息,这样就可以防止文件夹的重复命名。
(3) 层的命名:
每一层都应以其相应的内容进行命名。许多人为了方便一时,在开发时都使用默认的层命名,例如layer1、layer2或者图层1、图层2等等,等到需要修改的时候,对着几十甚至上百个图层,那时候才知道图层命名的重要性。若图层非常多的时候,也应该使用文件夹包含其相关内容,在需要寻找的时候,方便快捷。此外,现在的FLASH许多都用到AS和LABEL,因此应该建立专门的图层来存放AS和LABEL。LBAEL应该置于最上层,AS层其后。方便查找使用。
2、 编码规范
在FLASH中,许多的特效、数据传输、接收都与Actionscript密不可分。而使用AS来代替图形MC来实现一些功能,也是减少FLASH体积的好办法。许多美工使用AS的时候,只知道随便用些gotoAndPlay()、paly()、stop()等等简单的命令。因此不需要AS编码规范。但若开发的是FLASH的RIA使用到许多的AS,此时,编码规范就显得非常重要。
FLASH AS1.1和AS2.0的语法与JS相同,所以变量的定义也相同,即不是强类型的定义,当然也可以在定义的时候就定义了该变量的类型,这是一个好习惯,也应该推荐,而不是求一时的方便,随便的一个var i,这样到要查错的时候,要查找出问题就不是一件容易的事情了。而AS3.0的语法,因为较接近JAVA与.NET的语法,看起来比较严谨规范。由于大部分的编码规范与其他编程语言的规范基本相似,因此只说不同的部分。众所周知,FLASH中可以在按钮、影片剪辑中编写代码,也可以在时间轴中编写代码。个人觉得应该在时间轴上编写代码,而并非在相关的元件中。因为当开发的项目较大时,使用较多的元件,若在每个元件中都添加那么十来行代码,到修改或有错误的时候,想修改或查错,那是一件很痛苦的事情。若每个元件都给实例命名,把该元件需要的代码放在时间轴上统一管理,那么哪里需要修改就一目了然,哪里出现错误也比较容易发现。另外一个需要注意的是,一些特效使用到事件触发之后,就跳到特定的帧数。这种情况应该在时间轴上加一个名为LABEL的层,而不是在代码中写跳到具体的哪一帧。例如:gotoAndPlay(30),30是一个特定的帧数,则在LABEL层的第30帧上插入空关键帧,在该帧加入标签here,代码应该改为gotoAndPlay(“here”)则若以后修改的时候,就不必要修改具体的帧数,只用把LABEL相应的帧数标签拖动到相关的帧就可以。
此外,需要注意的是AS程序员应该使用统一的AS语法,而不是一些使用1.1的,一些使用2.0的,更有些使用3.0的。
3、多人开发的分工与页面分布
随着项目的功能增多,多人开发势在必行,然而多人开发却又需要解决许多问题。例如:任务分配。如何更好地结合美工和AS程序员之间的工作。使得他们各有所做,不用浪费各自的时间来等待他人的工作。根据本学期的几个项目总结了一下多人开发时候应该注意的问题。
(1) 网站方面:
①分工问题:
由于FLASH需要炫丽的画面,因此优秀的美工一定不可以少,但美工又大多只懂得简单的AS,而项目中许多的功能却需要AS来实现。因此美工与AS程序员必须分工。但有可能出现美工制作界面的时候,AS程序员则什么都干不了,只能等美工完成了界面之后,才能进行AS的添加及效果的实现。这样一来会使影响开发效率。个人想法为利用时间差来互补各自的工作。
当项目需要与外部数据进行交互的时候,美工应该尽快把界面完成,与此同时,AS程序员则应该把与外界的交互部分的代码实现,并利用一些测试的方法测试代码实现的功能是否符合要求,有无错误等等。而负责与数据库端的操作的程序员也应该开始工作,完成与FLASH传输的接口等程序的代码。当美工完成一部分界面之后,AS程序员就可以接着美工的界面进行AS加工,完成相关的功能,此时各人员的工作基本可以同步进行。
②各页面的分布结构:
在整个网站的设计的时候,就应该分拆页面,把每个页面都独立地表现为一个FLASH,这样既可以分散文件体积,又可以方便各个人员的开发,当美工完成一个页面之后,AS程序员就可以开始进行AS加工,美工则继续下一页面的设计。这样的工作顺序,不需要等待工作,而且页面出现了什么问题,都只是该页面有问题,不会影响其他页面的工作。减少互相之间的影响。
③源文件出现问题时:
由于上述两点,所以每个页面之间是没有太大的关联,一旦文件有什么问题的话,可以只处理该问题文件,但是也要协调美工与AS程序员之间的关系。美工可以没有AS的源文件,AS程序员应该有一份完整的源文件,如果是美工方面出了问题,美工和AS程序员都拥有各自的源文件,这样美工修改部分元件的同时,AS程序员可以继续他的工作。等到美工完成修改之后,AS程序员只需把没有删改过的图库中的文件覆盖美工的那份源文件中图库的相应文件即可。如果问题出在了AS程序员上,就比较麻烦,如果要改的AS地方比较多,美工在此其间可以选择继续其他页面的工作,如果比较少,则可以AS程序员修改完成后继续页面的设计。
④源文件汇总:
个人觉得应该交给AS程序员来汇总,因为美工的绘画不会对程序有影响,但是如果交由不懂AS的美工来汇总,很容易删错代码,这样修改的工作就会比较多,因此选择AS程序员来汇总会比较好。
(2) 应用型程序
作为类似C/S模式的应用程序类型的项目,由于该类型对美工要求并不高,更注重的是实效性,则分工应以功能划分,即不同的人员分配不同的模块,生成不同的子页面,再由main页面调用。
4、 减少FLASH体积问题:
FLASH相对于AJAX,个人觉得FLASH体积相对较大,因此如何优化减少其体积是很重要的。
①拆分FLASH
如果用一个FLASH开发整个网站,其体积可能达到大大的几百K,甚至上M,若能把它拆分为N个小模块,则体积分成了N份,最初显示可能只是几K或者几十K的框架,其余部分都加载该框架中,当然这里涉及了用户界面是否友好的问题。
②FLASH中图片文字的使用
如果FLASH中包含了许多的位图,则将使FLASH体积大好几倍,但未必每张位图都必须包含进FLASH中的,例如一些可以用FLASH的钢笔功能描绘出来的图片画面,则可以先导入位图,描绘出来之后,就把位图删除,整个FLASH只包含特殊的图片,而一些在FLASH中打入的特殊字体则应把它打散来存放。
③应该在外部导入数据
网站中有图片浏览等功能。此时的FLASH使用到的图片等数据就应该在外面导入,而不应该将其包含在FLASH中,这样做一来可以减少FLASH文件的体积,二来可以方便更新维护。因此把这些数据和图片放在外部非常必要。当然,也涉及到界面友好的问题。但需要注意外导文件数据存在的一些问题。例如:网站应使用常用的字体,如果用了特殊字体,则外导数据显示的仍然是默认字体,除非把该特殊字体包含进FLASH中,但是这样一来FLASH体积又会变大好几倍,要慎用。还需要注意中文乱码问题。
④遮罩的使用
如果使用图层和遮罩层来实现遮罩效果,其FLASH体积会较使用AS的setmask()的FLASH体积大些,并且这种遮罩对于外部导入的数据显示不起作用。解决方法是在该被遮罩层中使用滤镜。选择滤镜中的一种效果,例如模糊,但要把其参数设置到与没有使用遮罩相同即可。但使用setmask()则不会出现这种情况。
5、 界面是否友好的问题:
如何才能使得界面看起来较友好,除了通常知道的就是客户反馈中得到的了。在FLASH体积较大的时候,应该在每个FLASH子页面都加入LOADING进度条之类的东西,告诉你的访客,页面是没有加载完,在等待中,而不是出现了其他的问题。LOADING还可以制作成一些小游戏之类的,让加载文件不需要这么烦闷。在加载图片的时候也应该加入LAODING,图片加载完成后,应该有一个渐变的过程,这样会让人觉得比较适应。还有就是加载视频以及音乐的时候,也应该有相应的LOADING,道理是一样的。
转载于:https://blog.51cto.com/songcz/153935