Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Вызов функции во всплывающем окне (http://www.flasher.ru/forum/showthread.php?t=135973)

Charly84 06.02.2010 03:42

Вызов функции во всплывающем окне
 
Здравствуйте.
Помогиет решить такую проблему.

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

Код AS3:

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);
}

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


Код AS3:

<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

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

Код AS3:

<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

В том то и дело, что так я не могу обратиться к своей функции.
Код AS3:

BirthInfoWindow.fillFields();

Мне пишет, что
Код:


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


Кип 06.02.2010 14:23

Код AS3:

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

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

Код AS3:

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


Charly84 06.02.2010 14:30

Большое спасибо!
Заработало!


Часовой пояс GMT +4, время: 14:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.