PDA

Просмотр полной версии : Вызов функции во всплывающем окне


Charly84
06.02.2010, 03:42
Здравствуйте.
Помогиет решить такую проблему.

Есть всплывающее окно. Которое вызывается с помощью функции showPopupTime() :


public function showPopupTime (e:Event):void {
var BirthInfoWindow:TitleWindow = TitleWindow(PopUpManager.createPopUp(this, UserBirth_form, true));
BirthInfoWindow.title="Введите данные:";
BirthInfoWindow.setStyle("borderAlpha", 1);
BirthInfoWindow.addEventListener("sendRegisterData", sendRegisterDataToBD);
PopUpManager.centerPopUp(BirthInfoWindow);
}

Есть мхмл компонент, который выглядит так



<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" width="450" height="300" close="title_close();" horizontalAlign="center">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.events.CloseEvent;


public function title_close():void{
PopUpManager.removePopUp(this);
}


public function fillFields():void {
trace("Готов к заполнению полей :)");
}

]]>
</mx:Script>


<mx:Canvas width="100%" height="100%">

<mx:LinkButton
label="Отправить!" id="sendRegisterData"
click="sendDataToBD(event)"
x="179" y="215"/>
<mx:ComboBox x="23" y="86" width="101"></mx:ComboBox>

</mx:Canvas>


</mx:TitleWindow>



Как мне внутри функции showPopupTime() вызывть функцию fillFields(), которая находится внутри компонента всплываюего окна?

Спасибо.

udaaff
06.02.2010, 04:01
Так же как и все другие публичные методы этого компонента.

Charly84
06.02.2010, 12:45
Но как мне названичть айди для компонента вспылвающего окна? если вписываю айди в компонент - показывается ошибка.
А без айди я же не смогу обратиться к функциям компонента?


<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" id="UserForm">

Кип
06.02.2010, 13:45
BirthInfoWindow у вас хранит ссылку на ваше всплывающее окно.
По ней и вызывайте:
BirthInfoWindow.fillFields()

если вписываю айди в компонент - показывается ошибка.
Корневому компоненту, насколько я знаю, нельзя назначать id.

Charly84
06.02.2010, 14:15
В том то и дело, что так я не могу обратиться к своей функции.
BirthInfoWindow.fillFields();

Мне пишет, что


1061: Call to a possibly undefined method fillFields through a reference with static type mx.containers:TitleWindow.

Кип
06.02.2010, 14:23
var BirthInfoWindow:TitleWindow = TitleWindow(PopUpManager.createPopUp(this, UserBirth_form, true));

Вместо TitleWindow, нужно использовать UserBirth_form:

var BirthInfoWindow:UserBirth_form = UserBirth_form(PopUpManager.createPopUp(this, UserBirth_form, true));

Charly84
06.02.2010, 14:30
Большое спасибо!
Заработало!