AS2.0面向对象编程的解释

所属分类: 媒体动画 / Flash教程 阅读数: 1366
收藏 0 赞 0 分享
有时间,有兴趣,E文还行的可以直接上这看:http://www.kirupa.com/developer/oop2/AS2OOPindex.htm,很长,很详细。
我简单地把我理解的说一下,错误在所难免,不啬赐教,共同进步
引用张图先:


所有的类都是在外部定义,当然如果要使用它们的话,需要设置一下类路径,点击发布设置->actionscript2设置,在类路径里添加你要使用的类路径就行了,当然如果你希望每个flash都使用那些类,那么可以在"编辑->首选项->actionscript2设置"那添加类路径。当然如果只是图个方便的话,直接放到当前文件夹下面就可以了。
在一个.as文件里只能有一个class,而且这个class的name必须和文件名相同。比如有一个motion.as,那么就必须定义一个motion类:
//motion.as
class motion extends MovieClip{
function motion(){
// constructor
}
}
看起来比较死板,但管理起来确实方便了不少。
可以建立一个构造函数(就是跟class同名的函数),这样实例化的时候就可以调用该函数。
变量的类型
支持private,static和public,private不允许外部访问和修改,但可以被children读写(所以相当于protected),默认如果用var声明的话,是public,static可以不用实例化,直接使用。
函数的类型
跟变量的类型一样,也是private,static和public三种,static声明的可以直接使用,比如Math.random()。静态函数只能使用静态变量,其他类型的函数不受影响。
再来讲讲interface,给我的感觉,interface就是为了方便多人协作,避免某些函数没有被声明。


//simpleInterface.as
interface simpleInterface {
function head();
function body();
function foot();
//myClass.as
class myClass implements simpleInterface {
function head(){
trace("I'm head");
}
function body(){
trace("I'm body");
}
function foot(){
trace("I'm foot");
}
}
继承
继承的类拥有父类的所有方法和变量(通过extends实现)
//ball拥有mc的所有方法,同时还有自己的fly方法
//ball.as
class ball extends MovieClip{
private var height:Number;
function fly(){
trace("I can fly " height " m");
}
function ball(h){
height = h;
}
}
//时间轴
myball = new ball(30);
myball.fly();//trace "I can fly 30 m"
关于构造函数
如果子类的构造函数没有显示调用父类的构造函数,那么flash会自动给你加上,当然也可以通过super()手动加上
也可通过super去调用父类的其他方法,比如super.parentMethod();
如果想让舞台上的某个mc使用我们自定义的类的话,在链接处的class里天上类名就可以了:


最后来说说文件的管理,最好是新建一个项目,这样查看起来非常方便。
好了,就说这么多了,有时间附上个demo。
欢迎讨论。
附个小demo
ball.as
class ball extends MovieClip {
private var spring:Number = 0.1;
private var friction:Number = 0.95;
private var centerX = (Stage.width-this._width)/2;
private var v:Number = 0;
public function ball() {
_x = 0;
_y = Stage.height/2 - _height/2;
this.onEnterFrame = this.start_spring;
}
private function start_spring() {
var a:Number = (centerX - _x)*spring;
v = a;
//v *= friction;
_x = v;
}
}
在当前路径下,新建一个mc,然后按下图:


最后ctrl enter就能看到效果了。
源文件下载
ball.rar

更多精彩内容其他人还在看

Flash8怎么制作空心字? flash空心字的设计方法

在高版本的Flash软件及Animate软件中,可以使用滤镜功能实现空心字等效果,如果没有滤镜的情况下如何制作空心字效果,我们也可以自己制作,下面我们就来看看flash制作空心字的教程。 Macromedia Flash Pro(动画制作软件) V8.0 简体中文绿色注册版类型... 查看详情
收藏 0 赞 0 分享

flash怎么制作圆形的遮罩动画?

想要制作一幅山水图在圆形中慢慢显示出来的动画效果,我们需要利用flash制作遮罩动画,主要利用了补间动画和遮罩层功能,下面我们就来看看详细的教程。 adobe Flash CS6简体中文版(专业动画软件) v12.0.0.481 绿色精简版类型:动画制作大小:176MB语言:简... 查看详情
收藏 0 赞 0 分享

Animate帧标签怎么制作跳转动画?

Animate经常用于制作动画,想要制作一个跳转动画,我们可以通过帧标签进行动画的跳转,下面我们就来看看详细的教程。 动画制作软件 Adobe Animate 2020 20.5.1.31044 安装版类型:动画制作大小:1.67GB语言:简体中文时间:2020-08-13查看... 查看详情
收藏 0 赞 0 分享

Animate怎么制作圆形慢慢变苹果的动画效果?

Animate中想要用形状补间动画实现圆形变成苹果的动画效果,该怎么操作呢?下面我们就来看看详细的教程。 动画制作软件 Adobe Animate 2020 20.5.1.31044 安装版类型:动画制作大小:1.67GB语言:简体中文时间:2020-08-13查看详情 ... 查看详情
收藏 0 赞 0 分享

Flash8怎么制作可以拖动的进度条动画? flash拖动效果的制作方法

flash8中想要实现拖动条功能,该怎么制作呢?下面我们就来看看详细的教程。 Macromedia Flash Pro(动画制作软件) V8.0 简体中文绿色注册版类型:动画制作大小:47.6MB语言:简体中文时间:2014-06-26查看详情 1、打开Flash8软件,新建... 查看详情
收藏 0 赞 0 分享

Flash怎么制作纸张翻动的效果? flash翻页动画的制作方法

经常使用flash制作动画,该怎么制作一个纸张翻页效果呢?下面我们就来看看详细的教程。 adobe Flash CS6简体中文版(专业动画软件) v12.0.0.481 绿色精简版类型:动画制作大小:176MB语言:简体中文时间:2018-11-12查看详情 1、打开Flas... 查看详情
收藏 0 赞 0 分享

flash cs6怎么手绘卡通房子? flash画房子的教程

高楼大厦比较复杂,小房子绘制比较简单,该怎么使用flash画简单的小房子呢?下面我们就来看看详细的教程。 Adobe Flash CS6(FI cs6) 官方简体中文正式版类型:动画制作大小:1.24GB语言:简体中文时间:2015-12-10查看详情 1、打开软件,新建文档... 查看详情
收藏 0 赞 0 分享

Animate怎么实现输入文本显示星型密码字符?

在使用Animate软件或者Flash软件过程中,有时会需要让输入的文字显示为星号,这里讲一下如何进行设置?下面我们就来看看详细的教程。 动画制作软件 Adobe Animate 2020 20.5.1.31044 安装版类型:动画制作大小:1.67GB语言:简体中文时间:20... 查看详情
收藏 0 赞 0 分享

flash怎么画简笔画毛毛虫? flash画毛毛虫图形的教程

毛毛虫很多人都害怕,所以想要画毛毛虫,该怎么画简笔画效果的毛毛虫呢?下面我们就来看看详细的教程。 Adobe Flash CS6(FI cs6) 官方简体中文正式版类型:动画制作大小:1.24GB语言:简体中文时间:2015-12-10查看详情 1、打开软件,新建文档,修改笔... 查看详情
收藏 0 赞 0 分享

flash怎么手绘乌龟图形? flash简笔画乌龟的画法

地球上生存的乌龟种类有很多,该怎么绘制小乌龟呢?下面我们就来看看flash绘制小乌龟的教程。 Adobe Flash CS6(FI cs6) 官方简体中文正式版类型:动画制作大小:1.24GB语言:简体中文时间:2015-12-10查看详情 1、打开flash软件,新建文档,... 查看详情
收藏 0 赞 0 分享
查看更多