- 浏览: 44690 次
- 性别:
- 来自: 广州
最新评论
[1b][序]
[/1b]基于类的编程,使得我们可以更加轻松地定制属于自己的对象,同时也给已有类的扩展提供了极大的方便。
现在我们可以通过extends关键字实现继承,并通过import来导入位于其他.as文件中的类。
在这些基础之上,我们完全可以发展自己的想象力,改进已有的AS,使之成为一款适合自己的脚本语言。!
我和花兄的这两篇教程,算是打了个头炮,虽然简单,但是希望能起到抛砖引玉的作用。
以后欢迎大家积极地把自己写的类放上来,配上教程和源文件下载,以供大家学习使用。
P.S.对于那些有价值的扩展类(常用且通用性强),蓝色老大会适当做出奖励哦:D
[1b][正文][/1b]
下面这个例子非常简单,它向你说明如何扩展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
[Ctrl+A 全部选择 然后拷贝]
我想上面有关绘制的部分就不用解释了,都是MX的语法,值得注意的是参数的声明,
格式为“参数名:参数类型”,虽然麻烦,但大家一定要习惯才行。
接下来该是FLA的部分了,新建一个Flash文档,命名为testMCExtend.fla。
首先,要让Flash知道你的Class文件所在的路径,
在文件-发布设置-Flash选项卡中,选中AS2.0,并在后面的Settings设置中添加你的JC_MCExtend.as所在路径。
回到场景中,在库中新建一个MC,命名为:draw。
在库中右键点击这个MC,选择Linkage,做如图所示的设置
在时间轴第一桢,加入如下AS:
源文件下载
作者:花火§火花
新建一个as文件,存为moveclass.as
代码拷贝框
class moveclass extends MovieClip
//定义这个类为MovieClip扩展类:
{
var speed:Number;
var w:Number;
var h:Number;
//定义三个变量分别为速度,移动边界宽,移动边界长
function move_ctrl(w:Number,h:Number,speed:Number)
//写一个有三个变量的move_ctrl方法,用于控制MovieClip;
{
if(Key.isDown(Key.RIGHT)) //得到方向键的确定
{
this._x +=speed; //MovieClip向X轴移动speed位置
this._rotation = 90;//转向
if(this._x > w) //判断是否超过边界宽
{
this._x = w;
}
}
//下面同上进行方向键判断
if(Key.isDown(Key.LEFT ))
{
this._x -=speed;
this._rotation = 270;
if(this._x h)
{
this._y = h;
}
}
//微调方向,小转弯.
if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {
this._rotation = 315;
}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {
this._rotation = 45;
}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {
this._rotation = 225;
}
if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {
this._rotation = 135;
}
}
}
[Ctrl+A 全部选择 然后拷贝]
然后建立一个fla,在里面建立一个MovieClip,比如汽车等要移动的物体.
Ctrl+L.调出库,点这个MC,按右键,选择Linkage,用于把这个MC扩展
成CLASS类.
如图所示进行设置:
然后.返回Layer1,放入这个MC.并命名为Linkage里所取名一样.
现在我们在Layer1的第一帧里写上:
car.onEnterFrame = function() {
car.move_ctrl(300,200,10);
}
就可以调用这个设置好的扩展类及其方法:
只要写上3个参数变量就行
也可以先设定变量或者和输入文本框.如:
speed =5;
w = Stage.width;
h = Stage.height;
car.onEnterFrame = function() {
car.move_ctrl(w,h,speed);
}
flash6.0做这样一个移动控制也很方便.可以参考FLASH6.0里的帮助文件也有一个汽车控制,但是7.0的AS2.0的目的.是能够把代码和FLA尽量分开写.脚本被作为一个Class类.可以更好的多重利用.修改扩展脚本更方便.
这个例子很简单.只是介绍一下AS2.0和AS.10的区别,其实可以写得更复杂一点.比如更好的控制微调.做FLASH游戏的高手甚至可以把这个CLASS写成自己专用的控制引擎.
示例地址
[url=http://www.blueidea.com/articleimg/2003/09/736/JC_MCExtend.zip][/url]
源文件下载
[url=http://www.blueidea.com/articleimg/2003/09/736/JC_MCExtend.zip][/url]
_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);
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/260.html
发表评论
-
flv制作工具大全
2010-04-10 09:50 679Collected links to Flash Vid ... -
FLV播放器汇总
2010-04-10 09:50 569http://www.dengjie.com/weblog/c ... -
FCS阅读笔记29 服务器日志
2010-04-10 09:49 572在管理FlashCom MX Server的时候,一件非常重要 ... -
FCS阅读笔记29 服务器日志
2010-04-10 09:49 731在管理FlashCom MX Server的时候,一件非常重要 ... -
Flash Media Server 起步(13)再说说SO....onSync(list)
2010-04-10 09:49 511很早以前写过so,当时 ... -
flash AS3爱好者不可缺少的Class Diagram( 类图表 )下载
2010-04-09 12:46 983很早前就在 RIS 上发现了一张 101.588cm x 71 ... -
flash AS3爱好者不可缺少的Class Diagram( 类图表 )下载
2010-04-09 12:45 925很早前就在 RIS 上发现了一张 101.588cm x 71 ... -
flash AS3.0 的第一步: Hello World
2010-04-09 12:45 1055应网友(他原是美工的)的要求,写一篇Flash CS3 的基 ... -
flash AS3.0 的第一步: Hello World
2010-04-09 12:45 991应网友(他原是美工的)的要求,写一篇Flash CS3 的基 ... -
as3游戏开发之打气球系列(二)
2010-04-09 12:45 561HI,经过了昨天疯狂的理 ... -
as3.0游戏开发之打气球系列(一)
2010-04-09 08:25 567好久没有写正经的文章 ... -
as3按钮事件
2010-04-09 08:24 546在刚开始学As3时,如果不知道按钮的事件如onPress的话 ... -
【as3】ActionScript 3.0体验试教学视频教程
2010-04-09 08:24 379很不错的视频教程 原文地址: http://blog.sina ... -
as3 使用sound类(翻译)-暂停和继续播放声音
2010-04-09 08:24 573[1b]问题十[/1b] 如何暂停声音,如何从暂停的地 ... -
ActionScript 3.0(as3)实现的A*寻路算法源代码下载
2010-04-09 08:24 1108曾经写过A*寻路算法的教程,但没有贴出任何代码,这次代码全都贴 ... -
指针随鼠标移动的flash卡通时钟
2010-04-08 07:49 534。先看下时钟效果: var fnum:Number = ... -
动画人物运动规律与节奏
2010-04-08 07:49 562本文转自:h ... -
Flash绘制美丽风景画之海滩
2010-04-08 07:49 464过前段时间学习,我们掌握了鼠绘的一些初步知识,今天我们来综合一 ... -
Flash制作卷轴水墨画展开动画效果
2010-04-08 07:48 659北京奥运会开幕式上那充满诗意的卷轴,以及它所呈现给我们的一幅幅 ... -
Flash鼠绘入门第十三课:绘制美丽春日飞燕
2010-04-08 07:48 511相传燕子于春天社日北 ...
相关推荐
《ASP.NET 2.0编程珠玑--来自MVP的权威开发指南》是一本深入探讨ASP.NET 2.0技术的专业书籍,由该领域的专家,即...结合书中的实例和练习,你可以系统地学习和掌握ASP.NET 2.0的核心技术,为自己的职业生涯添砖加瓦。
《neco_src_installv2.0源码安装与编译详解》 在IT行业中,源码编译是一项基础且重要的技能,特别是在Linux环境下对...通过实践,你可以逐步提升自己的编程技能,更好地理解和定制开源软件,为你的IT事业添砖加瓦。
《C# 2.0 宝典》是一本专注于C# 2.0编程语言的权威指南,书中深入探讨了C#语言的核心特性和高级...通过研究和实践这些代码,你不仅可以提升C#编程技能,还能掌握实际项目开发的流程和技巧,为自己的职业生涯添砖加瓦。
Struts2.0是一款强大的Java Web应用程序框架,用于构建基于MVC(Model-View-Controller)设计模式的Web应用。...通过这个实例,你可以深入了解和实践Struts2.0的关键特性,为你的Java Web开发技能添砖加瓦。
"ebook阅读2.0.rar" 是一个针对电子书阅读体验升级的软件资源,其核心是易语言编写的源码,这为我们深入理解电子书阅读软件的开发提供了宝贵的资料。下面,我们将围绕这个主题展开详细的讨论。 首先,易语言作为一...
EXT 2.0是Web开发框架的一个重要版本,主要用于构建富客户端应用,它基于JavaScript,提供了丰富的组件库...通过分析EXT 2.0的源码,你可以学习到优秀的代码组织结构和设计模式,为自己的JavaScript编程技能添砖加瓦。
CSS2.0是在CSS1.0基础上的扩展,引入了许多新特性,旨在提高网页设计的效率和可访问性。它的全称是Cascading Style Sheets Level 2,主要关注样式表的层叠规则、媒体类型和定位策略。 ### 核心概念 1. **选择器...
### IT运维:从2.0升级到2.0.2版本操作指南(MYSQL) #### 核心知识点概览 在IT运维领域,软件版本的升级是常见...希望本文提供的知识点与步骤能帮助广大运维人员顺利完成数据库升级任务,为企业的信息化建设添砖加瓦。
《IP Messenger飞鸽传书v2.0代码详解与应用》 IP Messenger,又被称为“飞鸽传书”,是一款基于局域网的即时通讯软件,它允许...通过深入研究和实践,开发者可以从中获取丰富的知识和经验,为自己的技术之路添砖加瓦。
《机械设计课程设计辅助系统2.0:提升设计效率与精度的智能化工具》 机械设计是一门融合了理论知识、创新思维与实践...对于学习和从事机械设计的人来说,掌握并熟练使用这套系统,无疑会为他们的职业生涯添砖加瓦。
Burp-Suite-collections BurpSuite 相关收集项目,插件主要是非BApp Store(商店) 所有的破解汉化或者使用burpsuite都是在你配置好了Java环境的前提下!!! burpsuite pro 1.37 crack 破解: ...
《深入解析Framework 2.0:System.Data源代码剖析》 在编程领域,理解底层框架的工作原理对于开发者来说至关重要,尤其是对于...无论你是初学者还是经验丰富的开发者,都可以从中受益匪浅,为你的编程生涯添砖加瓦。
通过深入研究CVCommunity v2.0 Beta的源码,开发者不仅可以提升对ASP.NET框架的理解,还能学习到实际项目中的最佳实践,为自己的开发技能添砖加瓦。同时,这个开源项目也可以作为一个学习平台,让初学者能够通过实际...
3. **添加图标**:为扩展设计并添加不同尺寸的图标。 4. **测试**:使用Chrome的`chrome://extensions/`页面加载未打包的扩展进行测试。 5. **打包与发布**:将所有文件打包成.zip文件,然后在Chrome Web Store发布...
【新闻文章】永恒文章管理系统(YHCMS)v2.0 源码版是一个基于JSP技术构建的内容管理系统,适用于学习、...无论是初学者还是有一定经验的开发者,都可以从中获益,深入学习并改进这个系统,为自己的技术积累添砖加瓦。
《从零构建Minoca OS:探索通用操作系统的奥秘》 Minoca OS是一个独特而引人入胜的项目,它旨在提供一个从头编写的通用...通过研究Minoca OS,我们可以更好地理解计算机系统的内在运作,为自己的编程技能添砖加瓦。
公共安全产品认证为社会安全添砖加瓦.doc
《Creo 2.0快速入门进阶与精通视频教程》是针对三维设计软件Creo 2.0的教育资料,特别关注的是数控编程与...在实践过程中,不断练习和总结,你将能逐步精通Creo 2.0的数控编程与加工功能,为你的工程设计之路添砖加瓦。
添砖加瓦-会员邮件营销体系.avi13.精工细作-会员邮件营销体系.avi12.邮件素材的制作与优化.avi11.标准邮件素材的讲解与鉴赏.avi10.会员邮件常见素材的代码技巧.avi9.会员营销邮件的 资源太大,传百度网盘了,链接在...
1. **流程定义(Process Definition)**:这是使用BPMN 2.0语言编写的一种XML文件,描述了流程的结构和行为,通常以".bpmn"或".bpmn20.xml"为扩展名。在这个项目中,你可能会看到一个或多个这样的文件,它们定义了...