У меня есть родитель с всплывающим ребенком.Когда родитель загружается, я должен вызвать функцию во всплывающем окне, не показывая всплывающее окно (таким образом, я загружаю "pupLove", но не включаю его в макет) .... Затем я передаю эти данные родителю.Когда пользователь вручную нажимает другую кнопку, чтобы открыть всплывающее окно, эта же функция вызывается и данные передаются родителю.Однако я не могу передать dg.length родителю.Я полагаю, что основная проблема заключается в том, что я загружаю "pupLove", и поэтому родители запутываются ..... Я предполагаю, что если я избавлюсь от "pupLove", я смогу правильно передать данные, но мне нужно будет вызватьфункция на creationComplete родителя .... как мне это сделать?
Вот мой родитель:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
backgroundColor="green" width="50%" height="100%"
xmlns:local="*"
>
<fx:Script>
<![CDATA[
import pup;
import mx.managers.PopUpManager;
public function showPup(evt:MouseEvent):void {
var ttlWndw:pup = PopUpManager.createPopUp(this, pup, true) as pup;
PopUpManager.centerPopUp(ttlWndw);
}
]]>
</fx:Script>
<mx:VBox>
<local:pup id="pupLove" visible="false" includeInLayout="false" />
<s:Button click="showPup(event);" label="launch Pup" />
<mx:Text id="Ptest" color="black" text="from Parent:{pupLove.dg.length}" />
</mx:VBox>
</s:Application>
И всплывающий дочерний элемент с именем 'pup.mxml':
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300">
<fx:Script>
<![CDATA[
public function init():void{
// send php call
}
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
private function removePup(evt:Event):void {
PopUpManager.removePopUp(this);
}
]]>
</fx:Script>
<fx:Declarations>
<s:ArrayCollection id="dg">
</s:ArrayCollection>
</fx:Declarations>
<s:TitleWindow width="100%" height="100%" close="removePup(event)">
<mx:VBox>
<mx:Text id="test" color="red" text="from Child:{dg.length}" />
<s:Button label="add Items" click="dg.addItem({id:'cat'})" />
</mx:VBox>
</s:TitleWindow>
</s:Group>
ОБНОВЛЕНИЕ: Полагаю, мой вопрос проще сформулировать так: «Есть ли способ вызвать функцию потомка от родителя без фактической загрузки потомка?»