| 网站首页 | JAVA文章 | AppServers | Web开发 | 应用开发 | 资源下载 | 论坛
    学好外语能够获得更多的国外先进编程技术  [enadd  2006年12月25日]        
设为首页 加入收藏 联系站长
您现在的位置: 编程笔记网 >> Web开发 >> 图形图象 >> Fireworks制图 >> 设计实例 >> 文章正文
FlashMX2004新特性实例学习二        【字体:
FlashMX2004新特性实例学习二
作者:-    文章来源:-    点击数:    更新时间:2006-7-10

实例三、Customizing Context Menu    一、涉及特性   这个实例反映了Flash 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。   注释7:设置注释2中所定义的变量的值为obj。   注释8:设置注释3所定义的变量的值为“cut”。   注释9:定义一个copy函数,传入的参数是obj,调用范围是public。   注释10:定义一个paste函数,没有传入的参数,调用范围是public。   注释11:判断所定义的operation的值是否为“cut”。   注释12:设置contents的xy坐标为鼠标的xy坐标。      注释13:设置contents的alpha为100。   注释14:利用完contents的值后,将contents的值重新设置为undefined。   注释15:将operation的值清空。   注释16:判断所定义的operation的值是否为“copy”。   注释17:定义一个变量newdepth,设置它的值为类中所定义的contents的深度。   注释18:定义一个变量newname,设置它的值为contents的实例名加上所在的深度。   注释19:复制一个Movie Clip,参数是newdepth和newname。这就实现了复制的功能。   注释20:设置所复制的Movie Clip的位置跟aplha。   注释21:如果operation不是“cut”也不是“copy”的话,直接返回。   注释22:定义一个函数isEmpty(),返回的类型为Boolean,调用的范围为public。   注释23:根据contents的值做相应的操作。   注释24:定义一个函数handleMenuCommand,返回为空,调用范围是public。   注释25:根据参数item的caption来做相

[1] [2] 下一页  

文章录入:enadd    责任编辑:enadd 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
  • 用Fireworks给黑白图上色(图…

  • FlashMX2004新特性实例学习三

  • 样式在FWMX2004中的应用

  • FlashMX2004支持的HTML标签

  • FlashMX2004专业版和视频

  • FlashMX2004中的文本遮罩

  • FlashMX2004支持的css

  • FireworksMX2004版本控制和文…

  • FireworksMX2004之Shapes工具…

  • FireworksMX2004之Shapes初体…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |