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

【Flex】【ActionScript】マウスオーバー

Flex ActionScript

幾つかの文字列があって、それにマウスオーバーされたときに、別のtextボックスに表示するやり方です。

元々表示される文字列(Label)はこんな感じです

<mx:Label id="text2" text="test2" x="-1000" y="142" fontWeight="bold" fontSize="28" color="#000000" mouseOver="create_text(event)" mouseOut="delete_text()"/>

表示させるところはこんな感じです

<mx:Text x="86" y="0" width="630" height="69" id="show_text" fontSize="20"/>


mouseOverとmouseOutが設定されているところだけ見てください。
mouseOutされるとcreate_text()を呼び出しています。

private function create_text(evt:Event):void{
	show_text.text = evt.target.text;
}

LabelでmouseOutされるとeventがcreate_text()に渡されます。そのそのeventがLabelにおけるマウスオーバーとすると、それをtargetにして、textを指定すれば、そのイベントが送出された先の値を指定出来るようです。(ここ辺りは自分の理解であるため、違うかも知れませんが)

一度表示されたまま消えないと困るのでmouseOutも設定します

private function delete_text():void{
	show_text.text ="";
}

マウスアウトされるとdelete_text()が呼ばれて、create_text()でshow_text.textに代入された文字列を""で消しています。実際文字が消えたように見えても、textのタグというかオブジェクトは消えていません。