Flexで動的にCSSやスキンを変更する

swfにしたCSSファイルをロードしてごそっと変更するやり方もありますが、まずはプリミティブに変更するやつを。


CSS


	<fx:Script>
		<![CDATA[
                
                [Bindable]
                private var buttonColor:uint=0xB8B8B8;
                [Bindable]
                private var mySize:Number = 20;
                
		]]>
	</fx:Script>
<fx:Style>
		@namespace s "library://ns.adobe.com/flex/spark";
		s|Button {
			fontSize: PropertyReference("mySize");
			color: PropertyReference("buttonColor");
		} 
</fx:Style>


スキンをコードベースで*1

	<fx:Script>
		<![CDATA[
                //省略.....................................................
                private function parentElement_creationCompleteHandler(event:FlexEvent):void{
                       myButton.setStyle("skinClass",myButtonSkin);
                }

		]]>
	</fx:Script>
<s:Button id="myButton" label="button"/>

*1:スキンもCSSであてられますがそれはおいといて