为AS2.0添砖加瓦-编写类扩展(1)_Flash教程
推荐:关于As2.0 编程的一些规则Java编程规则包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导,鉴于AS2.0与Java的相似性,很多建议对As2.0同样有效,特摘选部
[序]
基于类的编程,使得我们可以更加轻松地定制属于自己的对象,同时也给已有类的扩展提供了极大的方便。
现在我们可以通过extends要害字实现继续,并通过import来导入位于其他.as文件中的类。
在这些基础之上,我们完全可以发展自己的想象力,改进已有的AS,使之成为一款适合自己的脚本语言。!
我和花兄的这两篇教程,算是打了个头炮,虽然简单,但是希望能起到抛砖引玉的作用。
以后欢迎大家积极地把自己写的类放上来,配上教程和源文件下载,以供大家学习使用。
P.S.对于那些有价值的扩展类(常用且通用性强),蓝色老大会适当做出奖励哦 :D:D
[正文]
下面这个例子非常简单,它向你说明如何扩展MoiveClip类,加入自己编写的方法。
假如你是一名数学老师,那么三角函数的图像肯定是你经常要用到的东西,下面我们就来扩展MovieClip类,
增加一个绘制正/余弦三角函数图像的方法。
第一步,编写类定义文件:
首先,新建一个Action Script File,命名为:JC_MCExtend.as。
因为在这个类中,我们不需要构造函数(只是对MoiveClip一个扩展),所以这个命名可以随意。
添加如下代码:
class JC_MCExtend extends MovieClip //用extends来继续MovieClip类
{
//绘制坐标轴(简易)
function drawRF()
{
this.lineStyle(1,0x000000,100);
this.moveTo(Stage.width/2,0);
this.lineTo(Stage.width/2,Stage.height);
this.moveTo(0,Stage.height/2);
this.lineTo(Stage.width,Stage.height/2);
}
//绘制正弦函数 y=A*Sin(B*x C) D 的函数图像
function drawFunc(startX:Number,endX:Number,A:Number,B:Number,C:Number,D:Number)
{
this.moveTo(Stage.width/2 startX,Stage.height/2-(A*Math.sin(0.1*B*startX C) D));
this.lineStyle(1,0xff0000,100);
for(var x=startX;x<endX;x =0.1)
this.lineTo(Stage.width/2 x,Stage.height/2-(A*Math.sin(0.1*B*x C) D));
}
}
我想上面有关绘制的部分就不用解释了,都是MX的语法,值得注重的是参数的声明,
格式为“参数名:参数类型”,虽然麻烦,但大家一定要习惯才行。
接下来该是FLA的部分了,新建一个Flash文档,命名为testMCExtend.fla。
首先,要让Flash知道你的Class文件所在的路径,
在文件-发布设置-Flash选项卡中,选中AS2.0,并在后面的Settings设置中添加你的JC_MCExtend.as所在路径。
回到场景中,在库中新建一个MC,命名为:draw。
在库中右键点击这个MC,选择Linkage。
在时间轴第一桢,加入如下AS:
_root.attachMovie("draw","draw_mc",0);
//绘制坐标轴
draw_mc.drawRF();
//绘制函数 y=30*Sin(x PI/2)的函数图
draw_mc.drawFunc(-100,100,30,1,Math.PI/2,0);
OK,ctrl Enter测试,
分享:Action Script 2.0新手调试AS2.0确实让人兴奋。假如有java编程经验的话,你可以很快上手。Step1.新建一个ActionScriptFile。这个文件是用来定义你的Class的。居个简单的例子,
- 相关链接:
- 教程说明:
Flash教程-为AS2.0添砖加瓦-编写类扩展(1)。