【ActionScriptというよりFlex】rollOver rollOut
imageをrollOverで文字を表示させたり、rollOutでサイズを変えるコードはこれでいいらしい。
Stateの終了タグのすぐ上にSetEventHandlerの、nameを自分のさせたい動き(rollOutなど)にしてやればいいみたい。
rollOverはimageタグの中に、rollOver="currentState = 'bookDetails'"で、bookDetailsというstateを呼び出している。
ここで、注意しなければならないのは、SetEventHandlerでrollOverは出来ないという事。
何故なら、stateが起動された時に、state内のSetEventHandlerが動くと言うことは、state内にrolloverを記述しても、stateが起動しないわけであるから、rollover出来ない。
imageタグにrolloverを記述すれば、それが起爆剤となって、stateを呼び出し始めるので、SetEventHandlerが動き出す。
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:states> <mx:State name="bookDetails"> <mx:AddChild position="lastChild"> <mx:Text width="380" x="110" y="275" fontWeight="bold" text="aaaaeeee-"/> </mx:AddChild> <mx:AddChild position="lastChild"> <mx:Text width="135" fontWeight="bold" text="ISBN: 1677788888998887" x="236" y="380"/> </mx:AddChild> <mx:SetEventHandler name="rollOut" target="{jacobsBook}" handler="currentState = ''"/> <mx:SetProperty target="{jacobsBook}" name="scaleX" value="0.5"/> <mx:SetProperty target="{jacobsBook}" name="scaleY" value="0.5"/> </mx:State> </mx:states> <mx:Image id = "jacobsBook" x="180" y="25" source="assets/jacobs.jpg" rollOver="currentState = 'bookDetails'"/> </mx:Application>
本に書いてある部分だと、
<mx:SetEventHandler name="rollOut" target="{jacobsBook}" handler="currentState = ''"/> <mx:SetProperty target="{jacobsBook}" name="scalex" value="0.5"/> <mx:SetProperty target="{jacobsBook}" name="scaley" value="0.5"/>
のように、name="scalex"などと、xとyが小文字になっているのですが、それではエラーが出てしまいます。
また、value=".50"となっていたのですが、これは大丈夫なようです。