Temat: Przekazanie danych z TitleWindow
Żeby odebrać dane z parametru przekazanego w event najlepiej stworzyć własną klasę dziedziczącą Event:
package coms
{
import flash.events.Event;
public class myConditionalEvent extends Event
{
public var MiscInfo:Object;
public function myConditionalEvent(type:String, MiscInfo:Object=null)
{
super(type, true, true);
this.MiscInfo = MiscInfo;
}
public static const PROD_DEL:String = "prodDEL";
public static const PROD_UNDEL:String = "prodUNDEL";
public static const PARAM_ADD:String = "paramADD";
public static const PARAM_DEL:String = "paramDEL";
public static const PARAM_CPY:String = "paramCPY";
override public function clone():Event
{
return new myConditionalEvent(type, this.MiscInfo);
} }
}
w Application dajesz:
definicje meta:
<mx:Metadata>
[Event(name="PROD_DEL", type="coms.myConditionalEvent")]
[Event(name="PROD_UNDEL",type="coms.myConditionalEvent")]
[Event(name="PARAM_ADD", type="coms.myConditionalEvent")]
[Event(name="PARAM_DEL", type="coms.myConditionalEvent")]
[Event(name="PARAM_CPY", type="coms.myConditionalEvent")]
</mx:Metadata>
import definicji klasy:
import coms.myConditionalEvent;
później gdzieś np. w onComplete tworzysz listenery:
private function onComplete():void
{
this.addEventListener(myConditionalEvent.PROD_DEL,onProdDel);
this.addEventListener(myConditionalEvent.PROD_UNDEL,onProdUnDel);
this.addEventListener(myConditionalEvent.PARAM_ADD,onParamAdd); this.addEventListener(myConditionalEvent.PARAM_DEL,onParamDel); this.addEventListener(myConditionalEvent.PARAM_CPY,onParamCpy); }
W obsłudze zdarzenia możesz spokojnie odwoływać się do dodatkowych danych które przekazujesz z PopUpa
private function onProdDel(event:myConditionalEvent):void
{ trace(event.MiscInfo);
}
Na koniec w PopUp wywołujesz zdarzenie:
dispatchEvent(new myConditionalEvent(myConditionalEvent.PROD_DEL,data));
to powinno załatwić sprawę, choć osobiście częściej tworząc PopUpa dodaje mu listenera w stylu:
popupwindow.addEventListener(CloseEvent.CLOSE , OnPopUpClosed)
i obsługuje w ten sposób:
private function OnPopUpClosed(event:CloseEvent):void
{
trace(event.target.data);
}
Jeżeli masz jakieś pytania to postaram się odpowiedzieć na ile pamiętam ten kod