|
首页 | 名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
这是高新技术等级考试Flash复习题中的一个问题,我在制作效果时没完全按照原题去做,主要是大家通过这个实例学会“用自定义类实现动画控制”的一些方式就行了。 一、定义类 在文本编辑器中输入以下的类定义代码,保存为:人.as class 人 {
//属性定义 var 速度:Number = 1; private var Personso:Sound; public function 人(){ Personso = new Sound(); } //移动MC的方式 public function 移动(mc:Object,轮:Object,方向:String):Void { var root = this; mc.onEnterFrame = function() { if (方向 == "l") { if (mc._x<0) { mc._x = Stage.width; //假如已到舞台左边界,就跳到右边 }else{ mc._x -= root.速度; } 轮._rotation -= root.速度; } else if (方向 == "r") { if (mc._x>Stage.width) { mc._x = 0; }else{ mc._x += root.速度; } 轮._rotation += root.速度; } else if (方向 == "s") { delete this.onEnterFrame;//删除onEnterFrame,释放内存 } }; } //显示信息的方式 public function 信息():String { return ("我们一起来学习Flash!"); } //挥手的方式 public function 挥手(mc:MovieClip, hsx:Boolean):Void { if (hsx) { mc.gotoAndPlay(2);//挥手 } else { mc.gotoAndStop(1);//手放下 } } //发声的方式 public function 发声(sou, 口:MovieClip):Void { Personso.attachSound(sou);//加载库中的声音 Personso.start(); 口.play();//发声的同时控制MC“口”的动画 } } 几点说明: 1、我用了较多的中文变量名,以利理解,所以注释写得少; 2、关于方式(函数)――移动() 有三个参数 移动(mc,轮,方向) mc 要左右移动的影片剪辑MC 轮 要让它旋转的影片剪辑 方向 用字符串来控制mc的移动方向:“l”向左,“r”向右,“s”停止 3、挥手的动作实质上是MC本身来完成的,函数里只是控制MC跳到相应的帧 4、调用发声方式有两个参数,传入库里链接的声音ID名;口形动作MC的路径和MC名。 二、制作场景上的mc和相关按钮 详情看源文件,以下是源文件第一帧的代码: var MyPerson = new 人(); _root.onEnterFrame = function() { _root.movv = MyPerson.速度; } this.左移.onRelease = function() { MyPerson.移动(_root.Person_mc,_root.Person_mc.车轮,"l"); }; this.右移.onRelease = function() { MyPerson.移动(_root.Person_mc,_root.Person_mc.车轮,"r"); }; this.停止.onRelease = function() { MyPerson.移动(_root.Person_mc,_root.Person_mc.车轮,"s"); }; this.加速.onRelease = function() { if (MyPerson.速度<100){ MyPerson.速度 += 1; } }; this.减速.onRelease = function() { if (MyPerson.速度>1){ MyPerson.速度 -= 1; } }; this.信息.onRollOver = function() { _root.Person_mc.information = MyPerson.信息(); }; this.信息.onRollOut = function() { _root.Person_mc.information = ""; }; this.挥手.onRollOver = function() { MyPerson.挥手(_root.Person_mc.右手, true); }; this.挥手.onRollOut = function() { MyPerson.挥手(_root.Person_mc.右手, false); }; this.发声.onRelease = function() { MyPerson.发声("QQ",_root.Person_mc.head); }; 这是被人骂得狗血淋头的帖子,有人说:屁大一个动作,写了N长的AS。 返回类别: Flash教程 上一教程: Flash与后台编码问题解决新方案 下一教程: As2 Class 的 Private 属性 您可以阅读与"Flash高级知识:用自定义类实现动画控制"相关的教程: · Flash高级知识学习:ActionScript扫盲 · Flash实现动态遮罩:图片渐出效果 · Flash AS进阶教程:实现动态模糊效果 · FlashMX 视频教程(46)-控制动画的开始和停止 · Flash与Photoshop结合实现镜头推拉效果动画 |
快精灵印艺坊 版权所有 | 首页会员中心在线印刷在线编辑付款方式索取样品设计指南连锁门店 |