Просмотр полной версии : [AS3]Не изменяется переменная
eXplozive
10.10.2006, 13:21
Добрый день вот есть такой код
<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);
выполнятся не должен.
Но у меня такой способ не работает... Обясните пожалуйста в чем проблема...
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". Как мне передать в главный код эту переменную ?
Послать событие, например…
посылать даже не надо, просто подписатся на событие закрытия\удаления из дисплей листа, компонента.
eXplozive
10.10.2006, 14:58
Дело в том что я пока еще не совсем разобрался с этим , можно хоть небольшой примерчик, или хотябы где поискать в хелпе
Ну я имел ввиду подписаться на 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;
}
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.