对于学习FLASH编程的朋友来说,类,实例概念想必也是耳熟能详了。但是,为了提高AS水平以及OOP的编程风格,我们有必要进一步深入地理解这些概念,尤其是和像站长一样,把AS作为第一门语言,没有任何其它编程语言基础的朋友来说,这样做非常有必要。
对于类和实例,网络上的各种相关学习参考资源多如牛毛,笔者无意于引用各种艰深晦涩的专业术语来阐述这个问题,只想通过笔者的编程心得谈一些体会,供朋友们参考。
对于flash编程来说,类是一件文件,以.as结尾,不管是MovieClip还是Sound,String,以及组件,在安装目录中都会一个类文件与之对应。这个类文件中定义了相对元素的所有属性,方法,和事件。比如我们在组件面板拖一个Button组件在舞台上,那么这个Button组件就是Button类的一个实例,这个Button组件的所有可用的定义属性、方法都继承来自于Button类文件。
记得笔者初学AS时经常为样的操作感到疑惑:将一张图片按F8转换为影片剪辑,图片不转换为影片剪辑,在FLASH播放时照样可以照样显示,为什么一定要转换为影片剪辑?
这是因为这样做就是把一个元素,这里是图片,也可以是其它的东西,比如文本,进行封装,让它成为MovieClip类的一个实例,这样我们就可以通过MovieClip类文件中定义的属性方法和事件来控制这张图片。比如我们可以动态改变它的_alpha值,_x值_y值,等等。
MovieClip类中可以很多属性和事件,性能也足够强大,但是,如果只拘泥于提供的属性方法和事件,那么对于AS编程的理解未免过于肤浅,大材小用,另外,在很多只使用内置属性往往会增加编程的难度。
这就要通过另外一种方法,通过重新编写、扩展原有的类文件来实现,就是笔者所谓的“类编程”,比如我们在游戏开发中需要动态检测影片剪加的_x,_y,_alpha三个属性之和,我们可以这样写:
class mm extends MovieClip
{
function s ()
{
trace (this._alpha +this._y+this._x);
}
}
保存,然后在画一个方块转换为影片剪辑,实例名为a ,然后保存FLA到文mm.as的同级目录,然后在库面板中右击这个元件,
在AS2.0类文件中输入mm。这样我们就把舞台上的影片剪辑与我们编写的类文件相关联了,也就是说,舞台上的影片剪辑成了我们编写的类的一个实例。
在时间轴帧加入我们为影片剪辑定义的新方法,即可执行。
保存这个文件,以后要在使用同样方法都可以这样做,所有继承此类的影片剪辑都会一个新的构造函数S,新的构造函数可以根据我们在编程中需要实现的效果来自定义,这样大大提高了编程的灵活性。
从不会AS到在影片剪辑上写代码是一种进步,从在影片剪辑上写代码到在时间轴上写代码是一种进步,从时间轴上写代码到通过封装成类,直接编写类文件也来编程也是一种进步,只有掌握了OOP编程才真正称得上是一个FLASH程序员。
下篇文章,我们将详细探讨类编程的具体写法以及和时间轴编程的区别,敬请留意。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/502.html