我有一个skinnableContainer,它充当其他拖放项目的容器。在添加容器的同时,此容器的删除功能将从其父级添加。
这一切都正常,直到我向skinnableContainer添加一个皮肤类,现在没有一个可拖动的项目可以像以前一样放入容器中。
我假设从内部包装内容的Group组件以某种方式充当块,但我不确定如何通过它来允许删除功能?
有什么想法吗?
编辑以下皮肤代码:
<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark" alpha.disabled="0.5">
<fx:Metadata>
[HostComponent("spark.components.SkinnableContainer")]
</fx:Metadata>
<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>
<!-- layer 1: border -->
<s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5">
<s:stroke>
<s:SolidColorStroke color="0" alpha="0.50" weight="1" />
</s:stroke>
</s:Rect>
<s:Group id="contentGroup" left="0" right="0" top="0" bottom="0" >
<s:layout>
<s:VerticalLayout/>
</s:layout>
</s:Group>
</s:Skin>
答案 0 :(得分:0)
您的自定义皮肤没有背景填充,因此除边框外它完全透明。因此,没有“hitzone”可以放下你的物品(如果你准确地瞄准那个1px边框,你现在可能会放弃它们。)
解决方案 - 显然 - 是给它一个填充。不用担心,如果您希望它看起来透明,只需将其alpha
设置为0
。
<s:Rect left="0" right="0" top="0" bottom="0" radiusX="5" radiusY="5">
<s:fill>
<s:SolidColor alpha="0" />
</s:fill>
<s:stroke>
<s:SolidColorStroke alpha="0.50" />
</s:stroke>
</s:Rect>