私は Flex の初心者で、エフェクトを扱うのが一番苦労しています。
現在、競合する効果を扱う際に直面する問題に取り組んでいます。
次のコードを見てください。基本的に、私が直面している問題を示す短い再現可能なテスト サンプルを作成しました。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="400">
<mx:Script>
<![CDATA[
private function showmenu():void
{Menu.visible= true;
}
private function hidemenu():void
{Menu.visible= false;
}
]]>
</mx:Script>
<mx:WipeDown id="wipedown" duration="900"/>
<mx:WipeUp id="wipeUp" duration="900" />
<mx:Canvas id="main" width="400" height="400"
rollOver="showmenu();" rollOut="hidemenu();">
<mx:Button label="Show Menu"
x="100" y="20">
</mx:Button>
<mx:Canvas id="Menu" visible="false"
width="100" height="200"
backgroundColor="#B8B8B8" x="96" y="35"
showEffect="{wipedown}" hideEffect="{wipeUp}">
</mx:Canvas>
</mx:Canvas>
</mx:Application>
これは基本的にボタンを示しており、ボタンにカーソルを合わせると、一種のメニューになる別のキャンバスが表示されます。ロールアウトすると、メニューが消えます。
メニューにはいくつかのエフェクトもあり、別のエフェクトが終了する前に 1 つのエフェクトを開始しようとすると、無限ループに陥ります。
私が話していることを再現するには、ボタンをロールオーバーしてからロールアウトし、すぐにロールオーバーします。メニュー効果がループに陥っていることがわかります。
これを回避するにはどうすればよいですか?