×

关注微信公众号

免备案网站空间虚拟主机双线空间域名查询PS数码后期
photoshop互助课堂数百G视频教程下载英语培训机构初中英语如何学随时随地聆听大师开讲/课堂
酷素材!视频教程打包下手绘教程抠图教程路径专辑photoshop cs3视频教程
查看: 13839|回复: 26

[AS] 学习AS3菜鸟起飞吧之—显示类(一)

  [复制链接]
发表于 2009-9-7 10:06:52 | 显示全部楼层 |阅读模式
本帖最后由 cao4811 于 2009-9-7 10:09 编辑

学习AS3菜鸟起飞吧之—显示类(一)

DisplayObject类

 DisplayObject类是所有显示类的抽象类,它具有所有显示类的共同属性、方法和事件。见图1

       DisplayObject类的部分属性、方法和事件

上面列出的属性、方法和事件是显示类所共有的,也就是说由任何一个显示类创建的实例都会具有这些属性、方法和事件。
 有了DisplayObject这个抽象类,就可以通过一种类和类之间的关系来编写显示类,这种关系叫继承。比如:A类继承了B类,A类就具有了B类的属性、方法和事件。就是说,A类即使没有编写B类的属性、方法和事件,通过继承A类也具有了B类的属性、方法和事件。

 在继承关系中,如果A类继承了B类,则称A类为子类B类为父类,继承可以是多层进行的,即A类可以继承B类,B类也可以继承C类。
 所有的显示类都继承了DisplayObject类,所以DisplayObject类是所有显示类的父类,所有显示类都具有DisplayObject类的属性、方法和事件。

InteractiveObject类

 在DisplayObject类的子类中,一些类具有交互功能,一些类不具有交互功能。因此,可以对显示类进一步的抽象,抽象出交互类和非交互类。
 交互类的名称为InteractiveObject类,定义了具有交互的属性、方法和事件。而非交互类由于没有处理事件的任何功能,所以不存在任何属性、方法和事件。所以,ActionScript3.0并没有把非交互类加到内置类中,而是让所有的非交互类直接继承DisplayObject类。

 非交互类有AVM1Movie类、Bitmap类、MorphShape类、Shape类、StaticText类和Video类。见图2

       6种非交互类的功能

在6种非交互类中,StaticText类用于创建静态文本实例,静态文本只能使用“文本工具”来创建,Bitmap类只能使用程序来创建,Shape类即可以使用工具也可以使用程序来创建实例。

 对于交互类InteractiveObject来说,主要定义了交互所需的属性、方法和事件利用InteractiveObject类可创建右键菜单及处理双击事件等大部分事件。见图3

      InteractiveObject类的部分属性、方法和事件

下面做一个右键菜单的实例:

1、打开Flash新建一个Flash文档
2、把图层1的名称改为mc,在图层的第一帧创建一个实例,名为mc的影片剪辑实例。
3、添加名为as的图层,单击第一帧,打开动作面板输入代码:
  1. //创建和引用ContextMenu类的实例
  2. var myContextMenu = new ContextMenu();
  3. //创建名为“中国教程网”的单选项
  4. var item:ContextMenuItem=new ContextMenuItem("zjs35")
  5. //注册单选菜单事件
  6. item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, menuSelectHandler);
  7. //隐藏内建菜单
  8. myContextMenu.hideBuiltInItems();
  9. //把菜单选项添加到ContextMenu类的实例中
  10. myContextMenu.customItems.push(item);
  11. //设置影片剪辑的contextMenu属性
  12. contextmenu_mc.contextMenu=myContextMenu
  13. //定义接收事件函数
  14. function menuSelectHandler(e:ContextMenuEvent){
  15.         trace("this is 中国教程网")
  16. }
复制代码
4、测试影片,右击影片的空白处,没有出现我们的右键菜单,

5、右击影片剪辑,隐藏内建菜单,出现自定义菜单

6、选择菜单的“中国教程网”选项,可在输出面板中输出“this is 中国教程网”的信息。

 InteractiveObject类的contextMenu属性用于创建右键菜单,由于MovieClip类是交互类,所以继承了InteractiveObject类的contextMenu属性,可以创建影片剪辑实例的右键菜单。
容器与DisplayObjectContainer类

 具有交互功能的显示类都继承自InteractiveObject类,这些显示类可分为SimpleButton类、TextField类、Loader类、Sprite类、Stage类和MovieClip类。见图4

           6种交互类的功能

6种交互类中,按其是否能嵌套其他显示实例的功能,可分为容器类和非容器类。容器类的实例能嵌套其他实例,Loader类、Sprite类、Stage类和MovieClip类属于容器类。SimpleButton类和TextField类属于非容器类,非容器类的实例不能嵌套其他显示实例。因此就有了所有容器的抽象类DisplayObjectContainer类。

 在Loader类、Sprite类、Stage类和MovieClip类4个容器类中,Loader类、Sprite类、Stage类直接继承DisplayObjectContainer类,MovieClip类又继承了Sprite类,所以如果不使用时间轴功能,用Sprite类比用MovieClip类效率更高。
 DisplayObjectContainer类主要实现了显示实例、移除显示实例和深度管理等功能。见图5

           DisplayObjectContainer类的部分属性、方法和事件

下面做一个遍历容器内的所有影片剪辑实例:

1、新建一个Flash文档
2、把图层一的名改为mc,在mc图层的第一帧创建6个影片剪辑实例,随意摆放在舞台中
3、新建名为as的图层,单击as图层第一帧,打开动作面板,输入代码:
  1. //索引的开始
  2. var i:int = 0;
  3. //索引的结束,就是影片剪辑的个数
  4. var len:int = this.numChildren;
  5. //循环查找
  6. for(i;i<len;i++)
  7. {
  8.       //根据索引得到影片剪辑实例
  9.   var mc:MovieClip= this.getChildAt(i);
  10.       //输出影片剪辑实例的实例名
  11.  trace(mc.name);
  12. }
复制代码
4、测试影片,可在输出面板中看到输出的信息
 从输出的信息可以看出,即使没有使用“属性”面板给影片剪辑实例命名,可以通过索引来引用它们,并且系统已经给这些实例指定了实例名。

      输出6个影片剪辑实例的实例名 见图6
本帖的地址:http://bbs.jcwcn.com/forum.php?mod=viewthread&tid=269033
跟着教程做一遍,做完的图要到这里评论交作业,教程有看不懂的地方,可以在贴子下面评论

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?[立即注册]

x

评分

参与人数 1金币 +8 热心度 +2 收起 理由
zctmh0336 + 8 + 2 好教程

查看全部评分

发表于 2009-9-7 17:46:13 | 显示全部楼层
酷素材
遍历容器内的所有影片剪辑实例
第四行 有笔误。
var mc:MovieClip = this.getChildAt(i) as MovieClip;
写成:
var mc:MovieClip = this.getChildAt(i) 了。
回复 支持 反对

使用道具 举报

发表于 2010-11-9 13:12:00 | 显示全部楼层
好东西!  我们菜鸟 谢谢你啦楼主!
回复 支持 反对

使用道具 举报

发表于 2011-4-18 18:25:50 | 显示全部楼层
谢谢了
回复 支持 反对

使用道具 举报

发表于 2011-4-26 10:44:15 | 显示全部楼层
酷素材
一窍不通
回复 支持 反对

使用道具 举报

发表于 2011-8-20 09:29:07 | 显示全部楼层
酷素材
看不到图片呢
回复 支持 反对

使用道具 举报

发表于 2011-8-21 11:25:36 | 显示全部楼层
为什么看到的FLASH 都是XXXXX的啊:dizzy:
回复 支持 反对

使用道具 举报

发表于 2011-8-21 11:26:24 | 显示全部楼层
求解!!!
回复 支持 反对

使用道具 举报

发表于 2011-8-22 10:44:49 | 显示全部楼层
怎么看不到图
回复 支持 反对

使用道具 举报

发表于 2012-3-27 17:12:52 | 显示全部楼层
图看不到···········
回复 支持 反对

使用道具 举报

发表于 2012-3-27 17:17:18 | 显示全部楼层
谢谢楼主分享!!!
回复 支持 反对

使用道具 举报

发表于 2012-3-30 13:04:42 | 显示全部楼层
可在输出面板中看到输出的信息
回复 支持 反对

使用道具 举报

发表于 2012-4-9 16:57:34 | 显示全部楼层
  图片失效了,why?
回复 支持 反对

使用道具 举报

发表于 2012-5-27 14:50:41 | 显示全部楼层
thank you
回复 支持 反对

使用道具 举报

发表于 2012-6-26 09:19:35 | 显示全部楼层
谢谢,学习了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则