<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="applicationComplete()">
<mx:Script>
<![CDATA[
private function applicationComplete():void
{
var textField:TextField = new TextField();
var sp:Sprite = new Sprite();
textField.text = "test";
textField.x = textField.y = 200;
sp.addChild(textField);
panel.rawChildren.addChild(sp);
}
]]>
</mx:Script>
<mx:Panel id="panel" title="Panel" width="640" height="480"/>
</mx:Application>
rawChildren | 属性 |
rawChildren:IChildList
[]
容器中通常包含子组件,可以使用 Container.getChildAt()
方法和 Container.numChildren
属性枚举这些子组件。此外,容器可以包含样式元素和外观,如边框和背景。Flash Player 和 AIR 创建的子组件和外观之间没有任何差异。二者均可以使用播放器的 getChildAt()
方法和 numChildren
属性进行访问。但是,Container 类通过覆盖 getChildAt()
方法和 numChildren
属性(以及其它多个方法)可造成容器的子项是唯一的子组件的错觉。
如果您需要访问容器的所有子项(内容子项和外观),则需使用 rawChildren
属性上的方法和属性,而不是常规 Container 方法。例如,可使用 Container.rawChildren.getChildAt())
方法。但是,如果容器为其子项创建了 ContentPane Sprite 对象,则 rawChildren
属性值将只计算 ContentPane,而不计算容器的子项。并非总能够确定容器何时包含 ContentPane。
注意:如果您调用 rawChildren
对象的 addChild
或 addChildAt
方法,则需在添加的组件上设置 tabEnabled = false
。这可以防止用户跳位到所添加的仅可视组件。
实现
public function get rawChildren():IChildList