# Container

继承 Container View 模块 hilo/view/Container 依赖 hilo/core/Hilo, hilo/core/Class, hilo/view/View 源码 Container.js
Container是所有容器类的基类。每个Container都可以添加其他可视对象为子级。

### 属性概览

显示继承属性

| 属性 | 定义于
--- | --- | ---
| children:Array 容器的子元素列表。只读。 | Container
| clipChildren:Boolean 指示是否裁剪超出容器范围的子元素。默认为false。 | Container
| pointerChildren:Boolean 指示容器的子元素是否能响应用户交互事件。默认为true。 | Container
| align:String|Function 可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。 | View
| alpha:Number 可视对象的透明度。默认值为1。 | View
| background:Object 可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。 | View
| boundsArea:Array 可视对象的区域顶点数组。格式为：[{x:10, y:10}, {x:20, y:20}]。 | View
| depth:Number 可视对象的深度，也即z轴的序号。只读属性。 | View
| drawable:Drawable 可视对象的可绘制对象。供高级开发使用。 | View
| height:Number 可视对象的高度。默认值为0。 | View
| id:String 可视对象的唯一标识符。 | View
| mask:Graphics 可视对象的遮罩图形。 | View
| onUpdate:Function 更新可视对象，此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false，则此对象不会渲染。默认值为null。 限制：如果在此函数中改变了可视对象在其父容器中的层级，当前渲染帧并不会正确渲染，而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。 | View
| parent:Container 可视对象的父容器。只读属性。 | View
| pivotX:Number 可视对象的中心点的x轴坐标。默认值为0。 | View
| pivotY:Number 可视对象的中心点的y轴坐标。默认值为0。 | View
| pointerEnabled:Boolean 可视对象是否接受交互事件。默认为接受交互事件，即true。 | View
| rotation:Number 可视对象的旋转角度。默认值为0。 | View
| scaleX:Number 可视对象在x轴上的缩放比例。默认为不缩放，即1。 | View
| scaleY:Number 可视对象在y轴上的缩放比例。默认为不缩放，即1。 | View
| tint:Number 可视对象的附加颜色，默认0xFFFFFF，只支持WebGL模式。 | View
| transform:Matrix 可视对象的transform属性，如果设置将忽略x, y, scaleX, scaleY, rotation. | View
| visible:Boolean 可视对象是否可见。默认为可见，即true。 | View
| width:Number 可视对象的宽度。默认值为0。 | View
| x:Number 可视对象的x轴坐标。默认值为0。 | View
| y:Number 可视对象的y轴坐标。默认值为0。 | View

### 方法概览

显示继承方法

| 方法 | 定义于
--- | --- | ---
| Container(properties:Object) 构造函数 | Container
| addChild(child:View) 在最上面添加子元素。 | Container
| addChildAt(child:View, index:Number) 在指定索引位置添加子元素。 | Container
| contains(child:View) 返回是否包含参数指定的子元素。 | Container
| getChildAt(index:Number) 返回指定索引位置的子元素。 | Container
| getChildById(id:String) 返回指定id的子元素。 | Container
| getChildIndex(child:View) 返回指定子元素的索引值。 | Container
| getNumChildren():Uint 返回容器的子元素的数量。 | Container
| getViewAtPoint(x:Number, y:Number, usePolyCollision:Boolean, global:Boolean, eventMode:Boolean) 返回由x和y指定的点下的对象。 | Container
| removeAllChildren():Container 删除所有的子元素。 | Container
| removeChild(child:View):View 删除指定的子元素。 | Container
| removeChildAt(index:Int):View 在指定索引位置删除子元素。 | Container
| removeChildById(id:String):View 删除指定id的子元素。 | Container
| setChildIndex(child:View, index:Number) 设置子元素的索引位置。 | Container
| sortChildren(keyOrFunction:Object) 根据指定键值或函数对子元素进行排序。 | Container
| swapChildren(child1:View, child2:View) 交换两个子元素的索引位置。 | Container
| swapChildrenAt(index1:Number, index2:Number) 交换两个指定索引位置的子元素。 | Container
| addTo(container:Container, index:Uint):View 添加此对象到父容器。 | View
| fire(type:String, detail:Object):Boolean 发送事件。当第一个参数类型为Object时，则把它作为一个整体事件对象。 | View
| getBounds():Array 获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。 | View
| getScaledHeight():Number 返回可视对象缩放后的高度。 | View
| getScaledWidth():Number 返回可视对象缩放后的宽度。 | View
| getStage():Stage 返回可视对象的舞台引用。若对象没有被添加到舞台，则返回null。 | View
| hitTestObject(object:View, usePolyCollision:Boolean) 检测object参数指定的对象是否与其相交。 | View
| hitTestPoint(x:Number, y:Number, usePolyCollision:Boolean):Boolean 检测由x和y参数指定的点是否在其外接矩形之内。 | View
| off(type:String, listener:Function):Object 删除一个事件监听。如果不传入任何参数，则删除所有的事件监听；如果不传入第二个参数，则删除指定类型的所有事件监听。 | View
| on(type:String, listener:Function, once:Boolean):Object 增加一个事件监听。 | View
| removeFromParent():View 从父容器里删除此对象。 | View
| render(renderer:Renderer, delta:Number) 可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。 | View
| toString():String 返回可视对象的字符串表示。 | View

### 属性详情

children:Array
容器的子元素列表。只读。
clipChildren:Boolean
指示是否裁剪超出容器范围的子元素。默认为false。
pointerChildren:Boolean
指示容器的子元素是否能响应用户交互事件。默认为true。

### 构造函数

Container(properties:Object)

parameters
properties:Object — 创建对象的属性参数。可包含此类所有可写属性。

### 方法详情

addChild(child:View)
在最上面添加子元素。

parameters
child:View — 要添加的子元素。

addChildAt(child:View, index:Number)
在指定索引位置添加子元素。

parameters
child:View — 要添加的子元素。
index:Number — 指定的索引位置，从0开始。

contains(child:View)
返回是否包含参数指定的子元素。

parameters
child:View — 指定要测试的子元素。

getChildAt(index:Number)
返回指定索引位置的子元素。

parameters
index:Number — 指定要返回的子元素的索引值，从0开始。

getChildById(id:String)
返回指定id的子元素。

parameters
id:String — 指定要返回的子元素的id。

getChildIndex(child:View)
返回指定子元素的索引值。

parameters
child:View — 指定要返回索引值的子元素。

getNumChildren():Uint
返回容器的子元素的数量。

return
  Uint — 容器的子元素的数量。

getViewAtPoint(x:Number, y:Number, usePolyCollision:Boolean, global:Boolean, eventMode:Boolean)
返回由x和y指定的点下的对象。

parameters
x:Number — 指定点的x轴坐标。
y:Number — 指定点的y轴坐标。
usePolyCollision:Boolean — 指定是否使用多边形碰撞检测。默认为false。
global:Boolean — 使用此标志表明将查找所有符合的对象，而不仅仅是第一个，即全局匹配。默认为false。
eventMode:Boolean — 使用此标志表明将在事件模式下查找对象。默认为false。

removeAllChildren():Container
删除所有的子元素。

return
  Container — 容器本身。

removeChild(child:View):View
删除指定的子元素。

parameters
child:View — 指定要删除的子元素。

return
  View — 被删除的对象。

removeChildAt(index:Int):View
在指定索引位置删除子元素。

parameters
index:Int — 指定删除元素的索引位置，从0开始。

return
  View — 被删除的对象。

removeChildById(id:String):View
删除指定id的子元素。

parameters
id:String — 指定要删除的子元素的id。

return
  View — 被删除的对象。

setChildIndex(child:View, index:Number)
设置子元素的索引位置。

parameters
child:View — 指定要设置的子元素。
index:Number — 指定要设置的索引值。

sortChildren(keyOrFunction:Object)
根据指定键值或函数对子元素进行排序。

parameters
keyOrFunction:Object — 如果此参数为String时，则根据子元素的某个属性值进行排序；如果此参数为Function时，则根据此函数进行排序。

swapChildren(child1:View, child2:View)
交换两个子元素的索引位置。

parameters
child1:View — 指定要交换的子元素A。
child2:View — 指定要交换的子元素B。

swapChildrenAt(index1:Number, index2:Number)
交换两个指定索引位置的子元素。

parameters
index1:Number — 指定要交换的索引位置A。
index2:Number — 指定要交换的索引位置B。