Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   [AS3]Не изменяется переменная (http://www.flasher.ru/forum/showthread.php?t=86207)

eXplozive 10.10.2006 13:21

[AS3]Не изменяется переменная
 
Добрый день вот есть такой код

Код:

    <mx:Script>
        <![CDATA[
            import components.smi;
            import mx.managers.PopUpManager;
            import mx.core.IFlexDisplayObject;
            private var login_open:String = "close";
            private function showLogin():void {
                    if(login_open != "open"){
                var login_open:String = "open";

                var helpWindow:IFlexDisplayObject =
                    PopUpManager.createPopUp(this, components.smi, false);
            }
            }
        ]]>
    </mx:Script>

Насколько я понимаю то переменная login_open после вызова функции showLogin() должна перейти в состояние "open" и при повторной попытке вызова этой функции код:
Код:

var helpWindow:IFlexDisplayObject =
                    PopUpManager.createPopUp(this, components.smi, false);

выполнятся не должен.

Но у меня такой способ не работает... Обясните пожалуйста в чем проблема...

etc 10.10.2006 13:38

Код:

var login_open:String = "open";
Ты замещаешь внутри метода showLogin приватную переменную login_open своей локальной login_open.
Зачем?

Код:

<mx:Script>
        <![CDATA[
            import components.smi;
            import mx.managers.PopUpManager;
            import mx.core.IFlexDisplayObject;

            private var login_open:String = "close";

            private function showLogin():void {
                    if(this.login_open != "open"){
                  this.login_open = "open";
                  var helpWindow:IFlexDisplayObject = PopUpManager.createPopUp(this, components.smi, false);
                }
            }
        ]]>
    </mx:Script>


eXplozive 10.10.2006 14:05

а, врубило... спасибо...

но у меня компонент который я вызываю (components.smi) - базируется на компоненте TitleWindow... в нем есть код который его закрывает:

Код:

<mx:Script>
        import mx.managers.PopUpManager;
        private function removeMe():void {
        PopUpManager.removePopUp(this);
        }
    </mx:Script>

еще нужно чтобы при закрытии, переменной "login_open" назначалось значение "close". Как мне передать в главный код эту переменную ?

etc 10.10.2006 14:49

Послать событие, например…

Nirth 10.10.2006 14:51

посылать даже не надо, просто подписатся на событие закрытия\удаления из дисплей листа, компонента.

eXplozive 10.10.2006 14:58

Дело в том что я пока еще не совсем разобрался с этим , можно хоть небольшой примерчик, или хотябы где поискать в хелпе

etc 10.10.2006 15:07

Ну я имел ввиду подписаться на close =)
Код:

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="initApp()">
<mx:Script>
<![CDATA[
        import mx.containers.TitleWindow;
        import mx.managers.PopUpManager;
        import mx.core.IFlexDisplayObject;
        import view.TWindow;
       
        private var popup:IFlexDisplayObject;       
       
        private function initApp():void {
                this.popup = PopUpManager.createPopUp(this,TWindow);
                this.popup.addEventListener("close",this.onWindowClose);
        }
       
        private function onWindowClose(e:Event):void {
                PopUpManager.removePopUp(this.popup);
                trace('Window Closed');
        }
       
]]>
</mx:Script>
</mx:Application>

и (просто так, для понимания)
Код:

package view
{
        import mx.containers.TitleWindow;

        public class TWindow extends TitleWindow
        {
                public function TWindow() {
                        this.width = 100;
                        this.height = 100;
                        this.showCloseButton = true;
                }
        }
}



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

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