Flex DisplayObject/DisplayObjectContainer

DisplayObject 是一种抽象基类;因此,不能直接调用 DisplayObject。 调用 new DisplayObject() 会引发 ArgumentError 异常。

DisplayObjectContainer 类是可以包含子对象的所有对象的抽象基类。 无法直接对其进行实例化;调用 new DisplayObjectContainer() 构造函数会引发 ArgumentError 异常。

DisplayObjectContainer没有getChildren(), Container才有。

在Flex 3正式版中,没有DepthManager,代替它实现相关功能的是DisplayObjectContainer。

DisplayObjectContainer在管理子控件的Depth时,定义了两个函数:

1,swapChildren(child1:DisplayObject, child2:DisplayObject):void
2,swapChildrenAt(index1:int, index2:int):void
但是经过实验,第二个函数无用。在模块开发时,需要把获得焦点的模块置于最前方,可以通过以下方法实现:

private function swapPanels(obj : DisplayObject, parent : DisplayObjectContainer = null) : void
{
if(!parent) parent = this;
var maxIndex : int = this.numChildren - 1;
var topObj : DisplayObject = parent.getChildAt(maxIndex);
this.swapChildren(obj, topObj);
}
在flex 3中几乎所有的容器都继承于DisplayObjectContainer,把关于depth的管理归责于容器,这样架构让人感觉更加合适。

flash中的架构(Sprite类的继承关系)
Sprite >DisplayObjectContainer>InteractiveObject >Displayobject

Flex中的UIMovieClip类继承于UIComponent ,flash中的MovieClip继承于Sprite,
flash中直接导出SWC,SWC中的元件属于MovieClip,而在Flex中确不能在现实对象中直接添加没有IUIComponent接口的类对象,所以不能使用.

解决方法:

我们可以使用官方提供插件,让FLASH自动编译MovieClip为UIMovieClip类,
Flex Component Kit for Flash CS3工具


Container  UIComponent  FlexSprite  Sprite  DisplayObjectContainer  InteractiveObject  DisplayObject  EventDispatcher  Object


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rubyzhudragon/archive/2009/06/09/4255990.aspx

转载于:https://www.cnblogs.com/liuzhong/archive/2011/06/27/2091177.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值