타일윈도우 팝업창을 이용하여 메소드를 실행하는 방법이다..
그 뭐냐..
어플리케이션에서는 바로 되는 듯 한데 컴퍼넌트에서 팝업을 실행하면 뭔가 안되는 듯..;
단순하게 pop 에서
var mc:Object = this.parent ;
mc.FFF('asdfasdf');
이렇게가 안된다는거다..;
pop의 parent 는 SystemManager 인가.. 암튼.. 안된다..; 깊이는 들어가기 싫어서;;
아무튼..
요래했다.. 도움은 검쉰님이.. 생유!!
====== main.mxml ======
public function FFF(value:String) : void
{
trace(value);
}
var target:pop = pop.showPop(this, true);
target.metho = FFF;
====== pop.mxml ======
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" showCloseButton="false"
title="SAVE" width="250" height="150" creationPolicy="all" borderColor="#212121" cornerRadius="0">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.controls.Alert;
public function init():void
{
pUserName = txtInputData.text;
if(pUserName != '')
{
parentMethod(pUserName);
PopUpManager.removePopUp(this);
}
else
{
Alert.show('뭐라도 적어야 합니다');
}
}
private var parentMethod:Function;
private static var instance:pop;
public static function getInstance() : pop
{
if(instance == null)
{
instance = new pop;
}
return instance;
}
public function set method(value:Function) : void
{
this.parentMethod = value;
}
public static function showPopup(parent:DisplayObject, modal:Boolean = false) : pop
{
var target:pop = pop.getInstance();
PopUpManager.addPopUp(target, parent, modal)
return target;
}
]]>
</mx:Script>
<mx:Canvas x="0" y="0" width="100%" height="100%" borderColor="#212121" backgroundColor="#BBBBBB" cornerRadius="0">
<mx:Label x="10" y="10" text="INPUT ALBUM NAME"/>
<mx:TextInput x="10" y="36" width="210" id="txtInputData"/>
<mx:Button x="72" y="78" label="OK" width="70" id="btnOK" click="init()"/>
<mx:Button x="150" y="78" label="Cancel" width="70" id="btnCancel" click="PopUpManager.removePopUp(this)"/>
</mx:Canvas>
</mx:TitleWindow>
싱글톤이라고 그랬는데..
움.. 예전에 싱글톤을 들어서 어케 좀 해볼까 했었는데 뭐같은 용어에 좌절을..
잊고 있었는데 이게 싱글톤이라 그랬는데..;
내가 늘상 해오던 짓 아닌가..;
나도 모르게 싱글톤을 사용했던건가..;;;;;; 아놔~
뭐 암튼..
윤택한 플렉스/에어 개발을 위해..한보전진..!
그 뭐냐..
어플리케이션에서는 바로 되는 듯 한데 컴퍼넌트에서 팝업을 실행하면 뭔가 안되는 듯..;
단순하게 pop 에서
var mc:Object = this.parent ;
mc.FFF('asdfasdf');
이렇게가 안된다는거다..;
pop의 parent 는 SystemManager 인가.. 암튼.. 안된다..; 깊이는 들어가기 싫어서;;
아무튼..
요래했다.. 도움은 검쉰님이.. 생유!!
====== main.mxml ======
public function FFF(value:String) : void
{
trace(value);
}
var target:pop = pop.showPop(this, true);
target.metho = FFF;
====== pop.mxml ======
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" showCloseButton="false"
title="SAVE" width="250" height="150" creationPolicy="all" borderColor="#212121" cornerRadius="0">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import mx.controls.Alert;
public function init():void
{
pUserName = txtInputData.text;
if(pUserName != '')
{
parentMethod(pUserName);
PopUpManager.removePopUp(this);
}
else
{
Alert.show('뭐라도 적어야 합니다');
}
}
private var parentMethod:Function;
private static var instance:pop;
public static function getInstance() : pop
{
if(instance == null)
{
instance = new pop;
}
return instance;
}
public function set method(value:Function) : void
{
this.parentMethod = value;
}
public static function showPopup(parent:DisplayObject, modal:Boolean = false) : pop
{
var target:pop = pop.getInstance();
PopUpManager.addPopUp(target, parent, modal)
return target;
}
]]>
</mx:Script>
<mx:Canvas x="0" y="0" width="100%" height="100%" borderColor="#212121" backgroundColor="#BBBBBB" cornerRadius="0">
<mx:Label x="10" y="10" text="INPUT ALBUM NAME"/>
<mx:TextInput x="10" y="36" width="210" id="txtInputData"/>
<mx:Button x="72" y="78" label="OK" width="70" id="btnOK" click="init()"/>
<mx:Button x="150" y="78" label="Cancel" width="70" id="btnCancel" click="PopUpManager.removePopUp(this)"/>
</mx:Canvas>
</mx:TitleWindow>
싱글톤이라고 그랬는데..
움.. 예전에 싱글톤을 들어서 어케 좀 해볼까 했었는데 뭐같은 용어에 좌절을..
잊고 있었는데 이게 싱글톤이라 그랬는데..;
내가 늘상 해오던 짓 아닌가..;
나도 모르게 싱글톤을 사용했던건가..;;;;;; 아놔~
뭐 암튼..
윤택한 플렉스/에어 개발을 위해..한보전진..!






댓글을 달아 주세요