Flash面向对象程式设计的演变(3)
2008-04-02 10:54:01来源:互联网 阅读 ()
研发步骤:
基于上面的源程式修改.拷贝主影片时间轴图层script第一帧的程式代码,然后删除图层script.编辑元件库里Movie Clip ball图层script的第一帧,将旧有两行程式代码删除,粘贴刚才主影片的程式代码,然后如以下程式代码作修改:
| 程式代码: |
#initclip //建构函式 BallClass = function () { this.initBall(); }; //继承MovieClip类 MovieClip.prototype = new MovieClip(); //定义方法 BallClass.prototype.initBall = function() { var speed = 10; var dir = random(360)*Math.PI/180; this.xdir = Math.cos(dir)*speed; this.ydir = Math.sin(dir)*speed; this.onEnterFrame=this.moveBall; }; BallClass.prototype.moveBall = function() { var x = this._x; var y = this._y; x = this.xdir; y = this.ydir; if ((x<0 and this.xdir<0) or (x>292 and this.xdir>0)) { this.xdir *= -1; x = (x<0) ? 0 : 292; } else if ((y<0 and this.ydir<0) or (y>292 and this.ydir>0)) { this.ydir *= -1; y = (y<0) ? 0 : 292; } this._x = x; this._y = y; }; //将BallClass类和Movie Clip元件相关联 Object.registerClass("ball",BallClass); #endinitclip |
在元件库里Movie Clip ball旁按右键选”连结”,如图所示

勾选”Exprot for ActionScript”,取消勾选”Export in first fame”,识别名称输入ball.这样BallClass类便能够跟此元件相关联,任何此元件在舞台的Movie Clip实体,也就是BallClass实体.修改后能够测试影片.
特点分析:
在Flash MX时,这是普遍面向对像程式设计的做法,写成的粒子组件,在重用性,封装性等上都已达到Flash面向对象程式设计的需要.唯一缺点是Prototype Based的面向对象程式设计不是业界习惯,所以到Flash MX 2004就有了ActionScript 2.0.
5.ActionScript 2.0类
粒子运动系统以ActionScript 2.0重写,面向对象概念跟ActionScript 1.0没有分别,只是方法上不同.
研发步骤:
基于上面的源程式的修改.将Movie Clip ball图层script删除.在元件库里Movie Clip ball旁按右键选”连结”,输入AS 2.0类为BallClass,这步骤已等于Object.registerClass(“ball”,BallClass);
建立一个名为BallClass.as的文档,加入程式代码:
| 程式代码: |
//继承MovieClip类 class BallClass extends MovieClip { //属性 private var xdir:Number; private var ydir:Number; //建构函式 function BallClass() { initBall(); } //方法 private function initBall():Void { var speed = 10; var dir = random(360)*Math.PI/180; xdir = Math.cos(dir)*speed; ydir = Math.sin(dir)*speed; onEnterFrame = this.moveBall; } private function moveBall():Void { var x = _x; var y = _y; x = xdir; y = ydir; if ((x<0 and xdir<0) or (x>292 and xdir>0)) { xdir *= -1; x = (x<0) ? 0 : 292; } else if ((y<0 and ydir<0) or (y>292 and ydir>0)) { ydir *= -1; y = (y<0) ? 0 : 292; } _x = x; _y = y; } } |
完成后能够测试影片(记得以Flash 6/7 ActionScript 2.0发布).
特点分析:
ActionScript 1.0的类,假如没有名称领域,都是在_root建立 ,ActionScript 2.0的类,则在_global建立,而且自行处理好名称领域问题.
从以上各例子一步步的演变,能够看到无论面向对象程式设计语法是如何改变,最核心控制粒子随机移动的程式都是大同小异的,而且面向对象程式设计概念是不变的.因此Flash MX面向对象程式设计新手要从全域函数到程式设计ActionScript 2.0是没有障碍的,学了面向对象程式设计概念,学了ActionScript 2.0方法,就应该踏出尝试第一步.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
