如何更改皮肤的state状态
定义了ExtButton类,该类继承于spark.components.Button。又定义了皮肤类ExtButtonSkin
ExtButton:
public class ExtButton extends Button { public function ExtButton() { super(); setStyle("skinClass", ExtButtonSkin); } ....................
<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" xmlns:supportClasses="com.esri.ags.skins.supportClasses.*"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Metadata> [HostComponent(name="com.telchina.szjd.skin.ExtButton")] </fx:Metadata> <s:states> <s:State name="up" /> <s:State name="down" /> <s:State name="over" /> <s:State name="disabled" /> </s:states> <s:Group minWidth="40" height="26"> <s:Rect visible="true" left="0" top="0" width="15" height="26"> <s:fill> <s:BitmapFill source="@Embed(source='assets/images/pic/pic_25.png')" fillMode="scale" /> </s:fill> </s:Rect> <s:Rect visible="false" visible.over="true" left="0" top="0" width="15" height="26"> <s:fill> <s:BitmapFill source="@Embed(source='assets/images/pic/pic_20.png')" fillMode="scale" /> </s:fill> </s:Rect> .....................................
var extButton:ExtButton = new ExtButton();extButton.currentState = "over";extButton.addEventListener(MouseEvent.ROLL_OUT, function(event:MouseEvent):void{ extButton.currentState = ""; }); extButto.addEventListener(MouseEvent.ROLL_OVER, function(event:MouseEvent):void{ extButton.currentState = "over"; });