返回列表 回复 发帖

扩展MovieClip类的实践

源创代码,仅为了学习“类”而作。
欢迎提意见!
先发类代码和源文件:
  1. /************
  2. 人类实验
  3. 制作:ybzjllj
  4.     2006.1
  5. ************/
  6. class 人 extends MovieClip {
  7. //声明属性
  8. var 头:MovieClip;
  9. var 声音:Sound;
  10. //构造函数
  11. function 人() {
  12.   头.信息._visible = false;
  13. }
  14. //定义方法
  15. //启动眼睛的动画
  16. function 眼眨() {
  17.   头.右眼.play();
  18.   头.左眼.play();
  19. }
  20. //眼睛的状态,参数a是跳转的目标(帧标签)
  21. function 眼睛(a:String) {
  22.   头.右眼.gotoAndStop(a);
  23.   头.左眼.gotoAndStop(a);
  24. }
  25. //眼球动作,两个参数分别为左、右眼球的跳转目标
  26. function 眼球动作(a:String, b:String) {
  27.   头.左眼.眼球.gotoAndStop(a);
  28.   头.右眼.眼球.gotoAndStop(b);
  29. }
  30. //口形动作,参数a:是说话的文本(显示的信息),b:是说话声音在库中的链接ID
  31. function 讲话(a:String, b:String) {
  32.   if (b != undefined && 声音== undefined) {
  33.    声音 = new Sound(this);
  34.    声音.attachSound(b)
  35.    声音.start();
  36.   }
  37.   头.口.play();//启动口形动画
  38.   头.信息._visible = true;
  39.   头.信息.文本.text = a;
  40. }
  41. function 口形(a:String) {
  42.   声音.stop();
  43.   delete 声音;
  44.   头.口.gotoAndStop(a);
  45.   头.信息.文本.text = "";
  46.   头.信息._visible = false;
  47. }
  48. //左右移动
  49. function 移动(n:Number){
  50.   _x+=n;
  51. }
  52. }
复制代码

人.as (1.28 KB)

人.fla (122 KB)

人.swf (14.19 KB)

向大家学习!
上面类代码保存为“人.as”,再新建一个fla文件保存在与“人.as”同一目录。

fla中建一个“人”MC,“人”里面做一个“头”MC,“头”上面做“左眼”“右眼”“口”等MC,详情可看源文件。

要让“人”MC与“类”关联,就要在库里设置“人”MC的链接,为AS导出填“人”(即类名)。

导入声音,设置链接ID为“NO”,可以设为你想要的名。

为了试验类的方法,舞台上放了很多按钮,相关代码放在下一帖,也可看源文件。
向大家学习!

  1. 眨眼.onRelease = function() {
  2. 小人.眼眨();
  3. }
  4. 争眼.onRelease = function() {
  5. 小人.眼睛("争眼");
  6. }
  7. 闭眼.onRelease = function() {
  8. 小人.眼睛("闭眼");
  9. }
  10. 对眼.onRelease = function() {
  11. 小人.眼球动作("右","左");
  12. }
  13. 右转眼.onRelease = function() {
  14. 小人.眼球动作("右","右");
  15. }
  16. 左转眼.onRelease = function() {
  17. 小人.眼球动作("左","左");
  18. }
  19. 眼定中.onRelease = function() {
  20. 小人.眼球动作("中","中");
  21. }
  22. 说话.onRelease = function() {
  23. 小人.讲话("N O !","NO");
  24. }
  25. 张嘴.onRelease = function() {
  26. 小人.口形("张口");
  27. }
  28. 闭嘴.onRelease = function() {
  29. 小人.口形("闭口");
  30. }
  31. 向左移.onRelease = function() {
  32. 小人.移动(-1);
  33. delete 小人.onEnterFrame;
  34. }
  35. 向右移.onRelease = function() {
  36. 小人.移动(1);
  37. delete 小人.onEnterFrame;
  38. }
  39. 自动左移.onRelease = function() {
  40. 小人.onEnterFrame = function() {
  41.   小人.移动(-5);
  42.   if(this._x<0) delete this.onEnterFrame;  
  43. }
  44. }
  45. 自动右移.onRelease = function() {
  46. 小人.onEnterFrame = function() {
  47.   小人.移动(5);
  48.   if(this._x>Stage.width) delete this.onEnterFrame;  
  49. }
  50. }
复制代码
向大家学习!
为了让新手易于看懂,用了很多的中文变量和实例名。也是为了减少注释。

请批评指正!
向大家学习!

受教了

楼主辛苦
谢谢楼主,多写些面向对象的编程方法。
返回列表