这里说的程序开发基础不是程序语言基础,语言基础的教程有很多,网上到处都能搜到,我也就不必说了。程序开发基础要说的究竟是什么?我们来了解下什么是程序开发,用程序语言编写软体的过程就是程序开发,可能有更好、更专业的描述,但大家能搞懂意思就是行了。用FLASH程序开发基础为标题,因为我是FLASH程序员,是用AS语言写程序,其他语言有什么高招就是他们的事了。
废话就不多说了,下面就开始主题。一个程序项目在开发之前应该搞清楚有多少功能块,这些功能块有哪些是可以独立,哪些是需要与其他功能块互交的。独立功能块很简单,写好就能用,需要互交的功能块就复杂点了,在AS2.0里面可以把每个功能块装在一个MC(影片剪辑)里面,如果要访问另一个MC里面的属性,可以用路径直接找到,就象WINDOWS里面找文件一下方便,_root指向主场景,只要知道路径就万事OK,但是这样写程序很混乱,路径写错或忘记是常有的事,而且不方便修改,如果有个MC路径需要改变,指向这个MC的路径都要去改一下,MC太多就只有累死。在AS3.0里面取消了_root指向主场景,很多人就傻眼了,有经验的人就会用功能块类的属性来指向主场景,这样做和AS2.0的区别也不大,至于如何把主场景赋值给属性也是个新手问题,很多人都不知道,这里先不讨论。
如何解决功能块互交的问题,创建功能块管理类,将功能块存放在此类中统一管理,存放方式可以用类属性和数组,使用数组存放应该规定每功能块所在数组单元格,例如:数组[功能块1.ID]=功能块1,这样可以不用考虑路径,对于合作开发也是很有好处的,而且可以演变出多种管理类,统称为管理类。
现在开始程序开发一步,分出引擎和数据,引擎主要有逻辑和算法构成,也就是说引擎就是我们写出来的程序,数据就是项目的描述,例如:图片位置x=100、y=100,引擎根据描述做出相应的处理。很多人会说赋值了x和y的图片自己就会到坐标上,跟引擎有什么关系,AS代码其实是数据,是种描述,flash player是他的引擎,所以我们要写出自己引擎和数据,这里原理比较复杂,解释一下:自定义数据->AS代码->flash player->AS代码->flash player,原理性的东西就不祥解了,这样做的好处:大家都遇到过发布的时候等上很长的时间吧,客户频繁的让修改是不是很痛苦,把数据文件放到外部载入,修改一个数据而已,没什么大不了的。
如何实现引擎和数据,例如:引擎实现表单提交,数据是lable=3,button=1,运行程序后出现3个文本框和1个按钮,引擎代码结构:
var arr:Array;
while (arr1.length > 0) {
arr=arr1[0].split("=");
for (var i:int=0; i < int(arr[1]); i++) {
if (arr[0]="lable") {
createlable();
} else if (arr[0]="button") {
createbutton();
}
}
}
function createlable() {
//创建一个文本
}
function createbutton() {
//创建一个按钮
}
数据是应该有一个对应的解析类,这里因为数据简单就直接写的,数据是可以更复杂的,格式也是自己定义的,其他人基本是看不懂,只要解析类够强,让数据象语言一样都可以,FLASH不就是这样的吗,呵呵。
以上均为个人理论,天外有天,人外有人,可能会有其他更好的模式。来点小建议,在开发程序的时候尽可能封装功能类,以后开发此功能直接使用,如果此类在二次使用的时候需要修改的代码比较多,那这个类就可以扔垃圾箱了。