CSS必须定义命名空间,选择器必须以命名空间开头
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace skintest "com.skintest.*";
s|Button {
skinClass: ClassReference("com.yourcompany.yourcomponent");
}
命名空间|控件类名 {
skinClass:ClassReference("your skin class");
}
皮肤里面一般必须具备以下两个元素
<fx:Metadata>
[HostComponent("要使用该皮肤的类")]
</fx:Metadata>
包含两种基本状态
<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>
功能类中的一些写法
[SkinState("capturing")]
public class PhotoInput extends SkinnableComponent
{
private var camera:Camera;
private var isCameraOn:Boolean = false;
[SkinPart(required="true")]
public var videoDisplay:VideoDisplay;
[SkinPart(required="true")]
public var image:BitmapImage;
..........
protected override function partAdded(partName:String, instance:Object):void {
super.partAdded(partName,instance);
}
protected override function partRemoved(partName:String, instance:Object):void {
super.partRemoved(partName,instance);
}