当前位置: 首页 > 图文教程 > Flash动画 > Flash动画制作 > Flash MX 2004新特性实例(3)

Flash动画制作
Flash AS 3.0实例教程:用Tween类制作缓动动画
Flash AS2实例教程:制作镭射闪光字动画效果
Flash AS2基础教程:一步绘制线条
Flash cs3仿真艺术设计4.4:模糊滤镜的应用
Flash cs3仿真艺术设计4.5:模糊运动制作飞行文字
Flash cs3仿真艺术设计4.6:组合效果应用实例
Flash cs3仿真艺术设计4.7:模糊滤镜的应用
Flash AS 3.0基础教程:物理基础之重力
Flash AS3.0菜鸟学飞教程:创建自定义类
Flash cs3仿真艺术设计4.8:选择模糊的应用
Flash cs3仿真艺术设计4.9:背景模糊应用技巧
Flash AS3.0菜鸟学飞教程:类的编写之时间轴代码转换为外部类
Flash AS3.0菜鸟学飞教程:类的编写之不使用库元件
Flash cs3仿真艺术设计5.1:2.5D基础应用
Flash cs3仿真艺术设计5.2:2.5D高级应用
Flash AS3.0菜鸟学飞教程:含有多个类的AS3类文件
Flash AS3.0实例教程:AS3.0代码制作3D旋转动画效果
Flash cs3仿真艺术设计5.3:2.5D动画技巧之绘制猴子
Flash cs3仿真艺术设计5.4:交换方法制作嘴型吻合
Flash cs3仿真艺术设计5.5:嵌套法打造角色嘴型吻合

Flash动画制作 中的 Flash MX 2004新特性实例(3)


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

实例三、Customizing Context Menu

  一、涉及特性

  这个实例反映了 MX 2004在编程方面的重大改进。其中包括了as文件的应用,系统的_global.$clipboard变量的使用,ContextMenu(menufun) 函数的调用,ContextMenuItem()函数的调用,已经MovieClip.prototype.menu变量的使用。通过这几个函数和变量的操作,就可以轻松地操作Flash Player中的菜单了。

  二、制作过程

  1、新建一个Action Script File,命名为“ClipBoard.as”,内容如下:   

  /* Copyright 2003 Macromedia, Inc. All rights reserved.

  The following is Sample Code and is subject to all restrictions

  on such code as contained in the End User License Agreement

  accompanying this product.

  */   

  class ClipBoard extends Object{ //注释1   

  static var $contents:Object; //注释2

  static var $operation:String; //注释3   

  function ClipBoard() {} //注释4   

  static public function cut(obj) { //注释5

  obj._alpha = 50; //注释6

  $contents = obj; //注释7

  $operation = "cut"; //注释8

  }   

  static public function copy(obj) { //注释9

  $contents = obj;

  $operation = "copy";

  }   

  static public function paste() { //注释10

  if ($operation == "cut") { //注释11

  $contents._x = _root._xmouse; //注释12

  $contents._y = _root._ymouse;

  $contents._alpha = 100; //注释13

  $contents = undefined; //注释14

  $operation = ""; //注释15   

  } else if ($operation == "copy") { //注释16

  var newdepth = $contents._parent.getNextHighestDepth(); //注释17

  var newname = $contents._name + newdepth; //注释18

  $contents.duplicateMovieClip(newname, newdepth); //注释19

  $contents._parent[newname]._x = _root._xmouse; //注释20

  $contents._parent[newname]._y = _root._ymouse;   

  $contents._alpha = 100;

  $contents._parent[newname]._alpha = 100;   

  } else {

  return; //注释21

  }

  }   

  public function isEmpty():Boolean { //注释22

      

  if ($contents != undefined) { //注释23

  return false;

  } else {

  return true;

  }

  }  

  public function handleMenuCommand(obj, item):Void { //注释24

  switch (item.caption) { //注释25

  case "Cut object": //注释26

  cut(obj);

  break;   

  case "Copy object": //注释27

  copy(obj);

  break;   

  case "Paste object": //注释28

  paste();

  break;

  }

  }

  }

 本实例有比较多的编程知识,刚接触会有无从下手的感觉,下面来详细讲解一下涉及的东西。

  注释1:class的意思是定义一个类,extends是表示所定义的类的基类是Object。这个涉及到编程的面向对象,可能比较难懂,可以把Object看成是所定义的类的父类,父类具有的方法和属性,在子类中都是有的。

  注释2:定义一个变量contents,类型为Object。Flash MX 2004中都是这样定义变量的。在此处定义的变量,在整个类中都是可以用的。

  注释3:定义一个变量operation,类型为String。

  注释4:这是类的构造函数,所谓的构造函数就是当实例化这个类的时候所调用的函数。比如本类的实例化可以是这样的:ClipBoard cb = new ClipBoard();

  注释5:定义一个cut函数,传入的参数是obj,它的调用范围是public,也即是任何类都可以调用。

  注释6:设置传入的obj的alpha属性为50。

  注释