1

我有一个自定义组件GlassSkin.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"
         xmlns:local="*" minHeight="20" minWidth="20">
    <fx:Metadata>
        [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">
        <s:alpha>0.3</s:alpha>
        <s:radiusX>3</s:radiusX>
        <s:fill>
            <s:SolidColor>#000000</s:SolidColor>
        </s:fill>
    </s:Rect>
    <s:Group id="contentGroup" width="100%" height="100%" left="5" right="5" top="5" bottom="5"></s:Group>
</s:Group>

在主 mxmm 内,我使用自定义组件,例如:

<local:GlassSkin width="600" height="400" horizontalCenter="0" verticalCenter="0">
Something...
</local:GlassSkin>

它有效,contentGroup接收我在里面添加的每个元素。唯一的问题是没有添加自定义元素中指定的自定义图形元素。没有阴影,没有纯色,什么都没有。为什么?

4

1 回答 1

0

我发现。使用自定义组件并将数据传递给它,会删除 mxml 本身中的所有格式。我不知道为什么。

取而代之的是,我创建了一个简单的 SkinnableContainer,并将我的自定义组件用作 Skin。(将组重命名为 SparkSkin)

有了这个,我没有自定义组件,但我有一个皮肤,我可以在任何地方使用它。

  • 加上生成的 swf 不知何故变小了。
于 2013-02-04T02:47:22.957 回答