【问题标题】:Flex id contentGroup queryFlex id contentGroup 查询
【发布时间】:2013-08-12 07:11:53
【问题描述】:

我正在学习 Flex 并练习皮肤。所以,我只是有一个疑问:

我编写了一个自定义皮肤,名为:ApplicationContainerSkin.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:states>
        <s:State name="normal" />
        <s:State name="disabled" />
    </s:states>


    <fx:Metadata>
        [HostComponent("spark.components.Application")]
    </fx:Metadata>


    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:Group horizontalCenter="0" verticalCenter="0">

        <s:Rect left="0" right="0" top="0" bottom="0"
                radiusX="10" radiusY="10">
            <s:fill>
                <s:SolidColor color="#CCCCCC" />
            </s:fill>
        </s:Rect>


        <s:Group id="contentGroup"
                 left="30" right="30" top="30" bottom="30">

        </s:Group>

    </s:Group>

</s:SparkSkin>

我的疑问: 当我删除 s:Group id="contentGroup" 时,我无法在我的应用程序中看到任何内容,那么为什么需要这个 'contentGroup' id?

这个 id 是在哪里预定义的。?抱歉,如果它是一个菜鸟查询,但我很想知道它。我什至尝试检查源代码,但我没有找到它,谁能告诉我它指定的位置以及我的内容如何仅在使用此 contentGroup id 后呈现。 .? (我的意思是,它在内部是如何工作的?)

等待您的回复!

【问题讨论】:

    标签: actionscript-3 flash apache-flex actionscript flex4


    【解决方案1】:

    Skinnable Spark 组件指定由 id 标识的“皮肤部件”。

    您正在换肤的应用程序组件定义了 2 个皮肤部件 - contentGroup 和 controlBarGroup,您可以在此处的文档中看到:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/components/Application.html#SkinPartSummary

    Application 类使用 contentGroup 皮肤部分(如果已添加到皮肤中)来布置内容。可能需要或不需要皮肤部件。 contentGroup 部分不是必需的,因此当您将其省略时,内容就不会显示。

    【讨论】:

    • 同意!但是它是如何使用我们的 contentGroup 显示的呢?需要明确的是,它在内部是如何运作的?
    • SkinnableComponent 有一个 partAdded 方法。在该方法中,组件将检查添加了哪些部分,并相应地使用它。在这种情况下,它将使用 Group 来布局内容。
    • SkinnableContainerGroup 组件中的 'addElement' 函数及其派生项被覆盖以将内容添加到 'contentGroup'。因此,如果您通过 mxml 添加某些内容,它会被编译器写入组件“mxmlContent”数组,然后在运行时通过“addElement”添加到 displayList。这可能是一个简短的解释,但大致就是它的工作原理
    • 另外请注意,在为应用程序设计皮肤时,您会经常遇到contentGroup,因为从SkinnableContainer 扩展的所有组件都具有特定的皮肤部分(即几乎每个组件都可以容纳其他组件)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-16
    • 2023-03-18
    • 1970-01-01
    • 2013-08-10
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多