Flash面向对象程式设计的演变
2008-04-02 10:54:01来源:互联网 阅读 ()
1.全域函数
研发步骤:
先准备好一个Movie Clip ball代表粒子,大量地将他拖到舞台上,输入这些Movie Clip ball实体名称,例如由ball0到ball14.
以美工角度加上时间轴的思考模式,Movie Clip ball会直接在主影片的时间轴上受控制,意思是程式会放在主影片的时间轴时,路径跟任何Movie Clip ball实体是一致的,而这种在主影片的时间轴里程式,是全域程式,因为由_root能够直接访问到.
由于粒子要不停移动,为了使负责移动的程式不停执行,时间轴必须循环播放,不停经过有程式的帧,让粒子移动.
对ActionScript认识较多的美工,会将初始化和移动的程式写成函数,否则可能只是直接地在第1和2帧加入程式.这些函数,路径是_root,视为全域函数;直到现在,大部分Flash研发人员,仍然是以全域函数方法研发应用程式或程式设计互动效果.
良好的程式设计习惯上, 函数是放在第1帧,在图层script加入程式代码, initBall()是初始化函数,计算每个粒子开始时的移动角度,然后分成x 速度和y速度:
程式代码: |
function initBall() { var speed = 10; for (var i = 0; i { var dir = random(360)*Math.PI/180; this["ball" i].xdir = Math.cos(dir)*speed; this["ball" i].ydir = Math.sin(dir)*speed; } } |
继续加入程式代码,程式设计移动程式的函数:
程式代码: |
function moveBall() { for (var i = 0; i { //利用共用子表达式删除增加执行速度 var ball = this["ball" i]; var x = ball._x; var y = ball._y; x = ball.xdir; y = ball.ydir; if ((x<0 and ball.xdir<0) or (x>292 and ball.xdir>0)) { //碰到边界便能会反弹 ball.xdir *= -1; //粒子不可穿过边界,所以极限的位置是边界大小 x = (x<0) ? 0 : 292; } else if ((y<0 and ball.ydir<0) or (y>292 and ball.ydir>0)) { //碰到边界便能会反弹 ball.ydir *= -1; //粒子不可穿过边界,所以极限的位置是边界大小 y = (y<0) ? 0 : 292; } ball._x = x; ball._y = y; } } |
在第一帧加入变量ballno,代表粒子总数;最后,调用initBall()函数进行初始化,继续加入程式代码.
程式代码: |
ballno =15; initBall(); |
在第二帧加入程式代码,调用moveBall()函数移动粒子:
程式代码: |
moveBall(); |
在第三帧加入程式代码,跳到第二帧循环播放,让moveBall()函数不停地被调用:
程式代码: |
gotoAndPlay(2); |
这个以全域函数编写的粒子运动系统完成,能够测试影片.
特点分析:
全域函数是最容易学习的程式设计技巧,但他有以下的三个问题:
1.面向对象成份很低
在程式设计中,涉及的面向对象概念很少,在图像使用上则达到重用需要(任何粒子实体都是来自同一个Movie Clip元件).
2.缺乏封装性
全域函数将程式代码和图像分离,当需要在别的专案中重用时,必须小心抽出所需的程式代码和图像,封装性完全缺乏.
3.留意Movie Clip路径
全域函数直接控制Movie Clip,假设Movie Clip和全域函数都是在同一个时间轴中(例如:主影片),没有路径问题;但是当受控制Movie Clip是在另一个Movie Clip里,全域函数就要修改受控制Movie Clip的路径,或将全域函数搬到那Movie Clip的时间轴里去.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系: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