编辑
你的问题后,我很快就刮起了证据,表明是按钮可以是任何形状的。如果你想在地板可以进行选择,那么你可能需要一个ToggleButton
,不是Button
所以我重新工作我的例子了一下,结果是你所描述的

为什么不使用Flex 4.0蒙皮功能?你的行为(和状态)与自己的外观/感受按钮组件:
<s:ToggleButton skinClass="FloorButton" y="0" />
<s:ToggleButton skinClass="FloorButton" y="25" />
<s:ToggleButton skinClass="FloorButton" y="50" />
你定义按钮皮肤(FloorButton
),还有一些图片:
<?xml version="1.0" encoding="utf-8"?>
<s:SparkButtonSkin 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.disabledStates="0.5">
<fx:Metadata>
<![CDATA[
[HostComponent("spark.components.ToggleButton")]
]]>
</fx:Metadata>
<s:states>
<s:State name="up" />
<s:State name="over" stateGroups="overStates" />
<s:State name="down" stateGroups="downStates" />
<s:State name="disabled" stateGroups="disabledStates" />
<s:State name="upAndSelected" stateGroups="selectedStates, selectedUpStates" />
<s:State name="overAndSelected" stateGroups="overStates, selectedStates" />
<s:State name="downAndSelected" stateGroups="downStates, selectedStates" />
<s:State name="disabledAndSelected" stateGroups="selectedUpStates, disabledStates, selectedStates" />
</s:states>
<s:Path data="M 0 0 L 20 20 L 40 0 L 40 20 L 20 40 L 0 20">
<s:fill>
<s:SolidColor color="#AAAAAA" color.selectedStates="#000000" color.over="#777777" />
</s:fill>
</s:Path>
</s:SparkButtonSkin>
当然,路径可以用具有透明度的PNG替换以实现类似的效果。
感谢您的回答。是否有可能使按钮“非方形”?我需要使用从3D侧视图看到的5层楼。并能够点击其中的任何一个。 –
是的。你可以让你的按钮任何你想要的形状。 –
喜欢这个。每个楼层都是一个触发BG更改的按钮。 我会看看你的代码=) http://i48.tinypic.com/vytc92.jpg –