codecamp

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 - 创建应用程序中一样 章节。 如果一切顺利,您的应用程序,这将产生以下结果:[在线试用]

Flex SkinnableContainer
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }