Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   не срабатывает свойство visible (http://www.flasher.ru/forum/showthread.php?t=114521)

Jean 31.07.2008 16:58

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

Код:

<?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, а уже затем начинается эффект

JesterAntik 31.07.2008 20:07

сейчас некогда разбираться конкретнее, но могут быть проблемы с областью видимости функции. Попробуй ее создать не внутри Open, а в основном тэге скрипта.

JesterAntik 01.08.2008 11:06

Не могу понять что должен делать данный код, надо что бы при нажатии на кнопку происходил эфект скрытия-раскрытия и всеравно элемент показывался?

Jean 01.08.2008 13:00

да.

все проблему решил путем ручного запуска эффектов без изменения свойства visible


Часовой пояс GMT +4, время: 08:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.