这篇文章属于篇分析型的,主要是给一些正在学FLASH面向对象的人看的.不管你现在在学习AS2还是AS3,你最好先仔细思考一下帖子标题:你真的理解或需要么?并不是class一个文件你就面向对象了,如果你不能做到提高代码的重复使用率和高开发效率,那还是老老实实的在时间轴上全用方法写吧,那样反而看着更清晰.
高手或已经理解了的就甭看了.喜欢看代码学东西的也对不住了,我这篇文章帮不了你什么.
我所写的类文件只有三种,前两种在私人类库里.
1.基础类,可重复使用,每次需要的时候只要将该文件继承并扩展之后即可. 2.功能类,也是重复使用的,但不需要扩展.可以给某个元素实现我想要的功能而对该元素无丝毫影响.就像一棵树,长出一树枝并在上面搭一个鸟窝却丝毫不会影响主干的生长.我本人也更热衷于将此类文件封装成组件(懒人风格..懒的打代码导入类包,也懒得去新建对象) 3.程序源码.这部分只是为了更方便管理源程序,不放在类库里用.
说明:
在开始下面的代码之前,如果你没好的写码习惯,我建议你先培养一下自己在写码上的习惯.做东西的时候尽量用自定义函数(方法),定义变量的时候最好声明下变量类型,路径尽量用完整的.子MC尽量包含在一个总的MC里,而不是全写在主场景里.一个功能就是一个大的MC,里边包含了你需要的方法,属性和其他元素等.等到你不需要部分功能或想结束的时候直接remove...尽量把代码都写在第一桢,尽量不要用桢动画.onEnterFrame或setInterval用完了记得结束或清除,按钮脚本也写在桢里,MC上不要有代码.注释一定要加好!
例如有的人就喜欢:
btn.onRelease = function () { this.txt.text = "bskdjljfj"; this. xxxxxx; }
如果有许多按钮的时候你要挨个这么写么?那需要更改的时候不是需要挨个去改么?你为什么不去写一个方法呢?然后只要按按钮的时候直接执行这个方法就好了.
function btnDown (target:MovieClip, content:String) { target.txt.text = content; target.xxxx = xxxxx; }
btn.onRelease = function () { btnDown (this, "sallksd"); }
如果有许多按钮,并且你需要修改什么的话直接在方法里改一个就全部OK了.这样岂不是更方便省事?
在写类文件的时候你要先考虑清楚你要实现的功能都需要哪些方法和属性.考虑清楚了之后再开始写
基础类代码说明[简单点的,就写个创建矩形的类]:
我的路径 $Classes.com.tensharp
class com.tensharp.CreateMovieClip { var NewMovieClip:MovieClip; public function CreateMovieClip (){}
public function CreateStart (Position:MovieClip, Name:Striong, Layer:Number):MovieClip { NewMovieClip = Position.createEmptyMovieClip (Name, Layer); return NewMovieClip; }
public function showBegin (Target:MovieClip, w:Number, h:Number, BeginColor:Number, LineColor:Number) { with (Target) {
beginFill (BeginColor, 100); lineStyle (1, LineColor, 100); moveTo (0, 0); lineTo (0, 0); lineTo (w, 0); lineTo (w, h); lineTo (0, h); endFill (); |