AS3 视觉编程

显示对象等级结构:

1.容器

2.非容器对象

 

显示对象种类划分:

一个统一:所有显示对象都统一于DisplayObject类(继承至EventDispatcher)

两个层次:1.是否可接受互动事件

               2.是否可以容纳其他显示对象

 

核心3个抽象类:DisplayObject,InteractiveObject(可接受互动事件),DisplayObjectContainer(可容纳其他显示对象)

 

AS3视觉架构类图:

DisplayObject

         |

InteractiveObject ---- Bitmap(位图) ---- Shape(简单矢量图) ---- Video ---- StaticText ---- MorphShape ---- AVM1Movie

         |

DisplayObjectContainer ---- SimpleButton ---- TextField

         |

     Sprite ---- Stage ---- Loader

         |

   MovieClip -------------------------------  mx.core.FlexSprite(Flex框架)

         |                                                                         |

mx.flash.UIMovieClip                                mx.core.UIComponet

Sprite:去掉时间轴的MovieClip,创建容器的首选

 

DisplayObject抽象类:不可直接创建其子类,只能继承DisplayObject的子类。

 

Graphics对象:AS3中所有矢量图的代码绘制由该对象完成,非显示对象类,不可创建Graphics对象,只由AS3内建显示对象创建调用。

绘画顺序:设置线头样式,填色,移动绘画点,画线(绘制图形),填色结束。只要含Graphics对象的显示对象都可以绘制矢量图(Shape,Sprite,MovieClip)

 

AS深度管理

深度由每个容器子对象列表管理。每个容器都清楚的知道自己一共有多少个子显示对象,总数记在numChildren中。每个对象在列表中索引值代表其深度值(范围0到numChildren-1),当子显示对象深度发生冲突,其他子显示对象会自动调整。

容器本身使用graphics对象画了矢量图,该矢量图始终处于所有子对象的最下面,可以把该矢量图做为背景图。

 

访问遍历容器子显示对象

访问一个容器的子显示对象有3种方式:

1.通过深度访问,使用getChildAt,访问速度最快

2.通过名字访问,使用getChildByName

3.通过全局坐标访问,使用getObjectsUnderPoint,返回一个数组,包括坐标下的该容器所有子对象

注意:返回值是DisplayObject类型,为一个抽象类。在进一步使用这个返回对象前,需要把他转成具体类型

 

未公开API:addFrameScript()

由于AS3也支持在MovieClip对象的关联帧中添加代码,实际由于未公开的API,在关键帧上加脚本

影片剪辑对象.addFrameScript(帧数1 索引值, 函数1,帧数2 索引, 函数2, 帧数3 索引, 函数3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值