Flex SkinnableContainer类
介绍
SkinnableContainer类是具有可视内容的所有可Skinnable容器的基类。
类声明
以下是 spark.components.SkinnableContainer 类的声明:
public class SkinnableContainer extends SkinnableContainerBase implements IDeferredContentOwner, IVisualElementContainer
公共属性
S.N. | 属性和描述 |
---|---|
1 | autoLayout:Boolean 如果为true,则当孩子的位置或大小改变时,进行测量和布局。 |
2 | creationPolicy:String 此组件的内容创建策略。 |
3 | deferredContentCreated:Boolean [只读]如果已创建延迟内容,则包含true。 |
4 | layout:LayoutBase 此容器的布局对象。 |
5 | mxmlContent:Array [只写]此组的可视内容子项。 |
6 | mxmlContentFactory:IDeferredInstance [write-only]为内容属性创建初始值的工厂对象。 |
7 | numElements:int [只读]此容器中的可视元素的数量。 |
公共方法
S.N. | 方法和描述 |
---|---|
1 | SkinnableContainer() 构造函数。 |
2 | addElement(element:IVisualElement):IVisualElement 向此容器添加可视元素。 |
3 | addElementAt(element:IVisualElement,index:int):IVisualElement 向此容器添加可视元素。 |
4 | createDeferredContent():void 创建此组件的内容。 |
5 | getElementAt(index:int):IVisualElement 返回指定索引处的视觉元素。 |
6 | getElementIndex(element:IVisualElement):int 返回视觉元素的索引位置。 |
7 | removeAllElements():void 从容器中删除所有可视元素。 |
8 | removeElement(element:IVisualElement):IVisualElement 从此容器的子列表中删除指定的可视元素。 |
9 | removeElementAt(index:int):IVisualElement 从容器中指定的索引位置删除视觉元素。 |
10 | setElementIndex(element:IVisualElement,index:int):void 更改可视容器中现有可视元素的位置。 |
11 | swapElements(element1:IVisualElement,element2:IVisualElement):void 交换两个指定可视元素的索引。 |
12 | swapElementsAt(index1:int,index2:int):void 在容器中的两个指定索引位置交换可视元素。 |
保护方法
S.N. | 方法和描述 |
---|---|
1 | createChildren():void [override]如果creationPolicy属性不等于none,则创建内容子节点。 |
2 | partAdded(partName:String,instance:Object):void [override]当添加皮肤部分时调用。 |
3 | partRemoved(partName:String,instance:Object):void [override]当皮肤部分的实例被删除时调用。 |
事件
S.N. | 事件和描述 |
---|---|
1 | contentCreationComplete 此组件的内容创建后分派。 |
2 | elementAdd 将视觉元素添加到内容持有者时分派。 |
3 | elementRemove 从内容持有者删除视觉元素时分派。 |
继承的方法
此类继承以下类中的方法:
spark.components.supportClasses.SkinnableContainerBase
mx.core.UIComponent
mx.core.FlexSprite
flash.display.Sprite
flash.display.DisplayObjectContainer
flash.display.InteractiveObject
flash.display.DisplayObject
flash.events.EventDispatcher
Object
Flex SkinnableContainer示例
让我们按照以下步骤通过创建测试应用程序来检查Flex应用程序中SkinnableContainer的使用:
步骤 | 描述 |
---|---|
1 | 在 Flex - 创建应用程序章节中所述,在包 com.tutorialspoint.client 下创建名为 HelloWorld 的项目。 |
2 | 为 SkinnableContainerSkin 创建一个包含 com.tutorialspoint.skin 下的主机组件 SkinnableContainer / i>章。 保持文件的其余部分不变。 |
3 | 修改 HelloWorld.mxml ,如下所述。 保持文件的其余部分不变。 |
4 | 编译并运行应用程序,以确保业务逻辑按照要求工作。 |
以下是修改的mxml文件 src / com.tutorialspoint / skin / SkinnableContainerSkin.mxml 的内容。
<?xml version="1.0" encoding="utf-8"?> <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009" alpha.disabled="0.5"> <fx:Metadata> <![CDATA[ /** * @copy spark.skins.spark.ApplicationSkin#hostComponent */ [HostComponent("spark.components.SkinnableContainer")] ]]> </fx:Metadata> <s:states> <s:State name="normal" /> <s:State name="disabled" /> </s:states> <s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5"> <s:stroke> <s:LinearGradientStroke weight="2"/> </s:stroke> <s:fill> <s:LinearGradient rotation="90"> <s:entries> <s:GradientEntry color="0xdddddd"/> <s:GradientEntry color="0x020202" alpha=".5" /> </s:entries> </s:LinearGradient> </s:fill> </s:Rect> <s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" minWidth="0" minHeight="0"> <s:layout> <s:BasicLayout/> </s:layout> </s:Group> </s:Skin>
以下是修改后的mxml文件 src / com.tutorialspoint / HelloWorld.mxml 的内容。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" minWidth="500" minHeight="500" > <fx:Style source="/com/tutorialspoint/client/Style.css"/> <s:BorderContainer width="630" height="480" id="mainContainer" styleName="container"> <s:VGroup width="100%" height="100%" gap="50" horizontalAlign="center" verticalAlign="middle"> <s:Label id="lblHeader" text="Layout Panels Demonstration" fontSize="40" color="0x777777" styleName="heading"/> <s:Panel id="skinnableContainerPanel" title="Using SkinnableContainer" width="500" height="300" > <s:layout> <s:VerticalLayout gap="10" verticalAlign="middle" horizontalAlign="center"/> </s:layout> <s:SkinnableContainer skinClass="com.tutorialspoint.skin.SkinnableContainerSkin" width="50%" height="50%" horizontalCenter="0" verticalCenter="0"> <s:HGroup horizontalCenter="0" verticalCenter="0"> <s:BorderContainer width="50" height="50" borderWeight="2" color="0x323232" /> <s:BorderContainer width="50" height="50" borderWeight="2" color="0x323232" /> <s:BorderContainer width="50" height="50" borderWeight="2" color="0x323232" /> </s:HGroup> </s:SkinnableContainer> </s:Panel> </s:VGroup> </s:BorderContainer> </s:Application>
准备好所有更改后,让我们以正常模式编译和运行应用程序,就像在 Flex - 创建应用程序中一样 章节。 如果一切顺利,您的应用程序,这将产生以下结果:[在线试用]