原创代码,仅为了学习“类”而作。欢迎提意见!
先发类代码和源文件:
/************
人类实验
制作:ybzjllj
2006.1
************/
class 人 extends MovieClip {
//声明属性
var 头:MovieClip;
var 声音:Sound;
//构造函数
function 人() {
头.信息._visible = false;
}
//定义方法
//启动眼睛的动画
function 眼眨() {
头.右眼.play();
头.左眼.play();
}
//眼睛的状态,参数a是跳转的目标(帧标签)
function 眼睛(a:String) {
头.右眼.gotoAndStop(a);
头.左眼.gotoAndStop(a);
}
//眼球动作,两个参数分别为左、右眼球的跳转目标
function 眼球动作(a:String, b:String) {
头.左眼.眼球.gotoAndStop(a);
头.右眼.眼球.gotoAndStop(b);
}
//口形动作,参数a:是说话的文本(显示的信息),b:是说话声音在库中的链接ID
function 讲话(a:String, b:String) {
if (b != undefined && 声音== undefined) {
声音 = new Sound(this);
声音.attachSound(b)
声音.start();
}
头.口.play();//启动口形动画
头.信息._visible = true;
头.信息.文本.text = a;
}
function 口形(a:String) {
声音.stop();
delete 声音;
头.口.gotoAndStop(a);
头.信息.文本.text = "";
头.信息._visible = false;
}
//左右移动
function 移动(n:Number){
_x+=n;
}
}
上面类代码保存为“人.as”,再新建一个fla文件保存在与“人.as”同一目录。fla中建一个“人”MC,“人”里面做一个“头”MC,“头”上面做“左眼”“右眼”“口”等MC,详情可看源文件。要让“人”MC与“类”关联,就要在库里设置“人”MC的链接,为AS导出填“人”(即类名)。导入声音,设置链接ID为“NO”,可以设为你想要的名。为了试验类的方法,舞台上放了很多按钮,相关代码如下,也可看源文件。
眨眼.onRelease = function() {
小人.眼眨();
}
争眼.onRelease = function() {
小人.眼睛("争眼");
}
闭眼.onRelease = function() {
小人.眼睛("闭眼");
}
对眼.onRelease = function() {
小人.眼球动作("右","左");
}
右转眼.onRelease = function() {
小人.眼球动作("右","右");
}
左转眼.onRelease = function() {
小人.眼球动作("左","左");
}
眼定中.onRelease = function() {
小人.眼球动作("中","中");
}
说话.onRelease = function() {
小人.讲话("N O !","NO");
}
张嘴.onRelease = function() {
小人.口形("张口");
}
闭嘴.onRelease = function() {
小人.口形("闭口");
}
向左移.onRelease = function() {
小人.移动(-1);
delete 小人.onEnterFrame;
}
向右移.onRelease = function() {
小人.移动(1);
delete 小人.onEnterFrame;
}
自动左移.onRelease = function() {
小人.onEnterFrame = function() {
小人.移动(-5);
if(this._x<0) delete this.onEnterFrame;
}
}
自动右移.onRelease = function() {
小人.onEnterFrame = function() {
小人.移动(5);
if(this._x>Stage.width) delete this.onEnterFrame;
}
}