当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Class结构教程

Flash动画制作
Flash绘制简单的楼梯动画场景
关于影片剪辑在主场景中位置修改的Flash技巧
Flash教程:单选题的制作
Flash绘画技巧实例:鼠绘好看的水仙花
Flash人物走动动画的制作技巧分析
Flash钢笔工具绘图技巧详细分析
Flash辅助线轻松辅助工具绘制女孩脸部
Flash新手鼠绘教程(2):熟悉鼠绘工具
Flash新手鼠绘教程(1):怎样学习鼠绘
Flash新手鼠绘(3):漂亮的卡通花草场景
FLASH CTRL+C SHORTCUT IN IE 快捷键在IE中失效
Flash 绘画技巧 投影滤镜设置阴影
Flash 视频广告的定位兼容性问题
SWFText轻松制作Flash贺卡
人物走动Flash动画的制作技巧分析
Flash钢笔工具绘图的技巧详细讲解
Flash新手鼠绘(9):好看的月季花
Flash新手鼠绘(10):美丽逼真的郁金香
Flash新手鼠绘(11):逼真的瓢虫
FLASH8.0鼠绘实例(1):时尚气质美女

Flash动画制作 中的 Class结构教程


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-22   浏览: 19 ::
收藏到网摘: n/a

1. 最基本的Class定义方面我不多说了, 就举个例子直接开始:

class Flash8 {
private var user:String; //定义变量
private var pass:String;
private var age:Number;
public function Flash8(x:String, y:String) { //class的结构函数
user = x;
pass = y;
trace("用户名 = "+user+", 密码 = "+pass);
}
public function setAge(x:Number):Void { //class中的定义函数
age = x;
}
public function getAge() {
trace(user+" is "+age+" years old.");
}
}

--------------- 在 Flash 的代码 ------------

var a = new Flash8("Super-Tomato", "123456");
a.setAge(24);
a.getAge();
//得到的输出结果是:
//用户名 = Super-Tomato, 密码 = 123456
//Super-Tomato is 24 years old.

2. 再来是Inheritance继承并且使用Overriding, 引用之前的Flash8类,作为SuperClass class Flash8 {

private var user:String; //定义变量
private var pass:String;
private var age:Number;
public function Flash8(x:String, y:String) { //class的结构函数
user = x;
pass = y;
trace("用户名 = "+user+", 密码 = "+pass);
}
public function setAge(x:Number):Void { //class中的定义函数
age = x;
}
public function getAge() {
trace(user+" is "+age+" years old.");
}
}

-------------- Board1类 -------------------

class Board1 extends Flash8 { //继承都必定要使用extends来指定所继承的SuperClass
public function Board1() {
trace("这个是继承类SubClass, SuperClass还是会被执行");
}
public function getAge() {
trace("这里使用了Overriding");
}
}

--------------- 在Flash的代码 --------------

var a = new Board1();
a.getAge();
//输出的结果为 :
//用户名 = undefined, 密码 = undefined
//这个是继承类SubClass, SuperClass还是会被执行
//这里使用了Overwritten

从这里可以知道, Flash8类还是有本执行.....当中的继承之间都同时出现了getAge()函数, 到底要用哪个getAge()才是对的呢??
答案是Board1的getAge(), 原因是因为他已经derived(继承)了Flash8, 也就是说Flash8的getAge()被Override(可以说被取代)了 AOL之前也有写过这样的例子: http://www.flash8.net/teach.aspx?id=1435 http://www.flash8.net/teach.aspx?id=599
3. Polymorphism (多形) 其实Polymorphism和Inheritance一样是被override, 但polymorphism则是多个继承, 接下来的例子当中我会使用到super和调用SuperClass的方法:

class Flash8 {
private var user:String;
private var pass:String;
private var age:Number;
private var str:String;
public function Flash8(x:String, y:String) {
user = x;
pass = y;
trace("用户名 = "+user+", 密码 = "+pass);
}
public function setAge(x:Number):Void {
age = x;
}
public function getAge() {
str = user+" is "+age+" years old.";
return str;
}
}

----------- Board1 类 -------------------

class Board1 extends Flash8 {
public function Board1(a:String, b:String) {
super(a, b);
}
public function getString() {
str = "In Board1 "+getAge();
trace(str);
}
}

----------- Board2 类 -------------------

class Board2 extends Flash8 {
private var str:String;
pub