Всем привет, возникла такая проблема. Не буду описывать, просто приведу код:

Код:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" >
<mx:Script>
<![CDATA[
import mx.events.EffectEvent;
private function open():void
{
if (box.visible)
{
var wipedUp:Function =
function(e:EffectEvent):void
{
wipeUp.removeEventListener(EffectEvent.EFFECT_END, wipedUp);
box.visible = true;
};
wipeUp.addEventListener(EffectEvent.EFFECT_END, wipedUp);
box.visible = false;
}
else
{
box.visible = true;
}
}
]]>
</mx:Script>
<mx:WipeUp id="wipeUp" />
<mx:WipeDown id="wipeDown" />
<mx:Button label="1" click="open()"/>
<mx:Button label="2" click="open()"/>
<mx:HBox id="box" visible="false" backgroundColor="#C0C0C0" width="300" height="300"
showEffect="{wipeDown}" hideEffect="{wipeUp}">
</mx:HBox>
</mx:Application>
суть в том, что по моему предположению, когда я вызываю open() с открытой панелью, сначала добавляю Listener, потом указываю visible = false. И после того как эффект заканчивается, листенер должен срабатывать проставляя при этом обратно свойство visible = true. Но такого не происходит, не могу понять почему
p.s. сначала добавлял листенер на событие hide, но как выяснилось - сначала происходит событие hide, а уже затем начинается эффект