読者です 読者をやめる 読者になる 読者になる

【AIR】【Flex】【ActionScript】文字色を変える

Flex ActionScript AIR

colorPickerを使います。
記述したのはこんな感じです。

<mx:ColorPicker id="ner_color" change="change_color(event)" dataProvider="{simpleDP}"/>

simpleDPは以下の様にしています。

[Bindable]
public var simpleDP:Array = ['0x000000', '0xFF0000', '0xFF8800','0xFFFF00', '0x88FF00', '0x00FF00', '0x00FF88', '0x00FFFF','0x0088FF', '0x0000FF', '0x8800FF', '0xFF00FF', '0xFFFFFF'];

Arrayに色の指定を直接格納しています。
これをした色だけ、colorPickerで表示されます。
これをすることで、change_color()にeventとともに、色を示す文字列を渡します。

注意点

通常なら、text.color=…なんて指定したら色が変わるだろう。と思っていたのですがところがどっこい。できません。
色々ぐぐった結果、以下のような書き方だと可能みたいです。

private function change_color(event:ColorPickerEvent):void{
	var format:TextFormat = new TextFormat();
	format.color = event.currentTarget.selectedItem;
	text2.setStyle('color',format.color);
}

TextFormat変数を作成して、それをtextにsetStyleしてやらないと、色変更はできません。