【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のタグというかオブジェクトは消えていません。