Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как сделать чтобы функция запускалась только после выполнения другой функции (http://www.flasher.ru/forum/showthread.php?t=208950)

grafillo! 23.09.2014 19:52

Как сделать чтобы функция запускалась только после выполнения другой функции
 
Как сделать так чтобы функция openUserPrivate(e); запускалась только после того как функция sendRequestLRtrue(); загрузила данные, а то она срабатывает первей чем данный успевают распарситься и вылетает ошибка((. Также структура проги такова что openUserPrivate(e); принимает в себя событие мыши поэтому вызвать её из sendRequestLRtrue(); не получится. Есть ли какоето решение?
Код AS3:

public function openPrivateUserFromDialog(e:MouseEvent){
        sendRequestLRtrue(); // загружает данные
        drawPrivatePeople(e.target.login);
        openUserPrivate(e);
 
}


Gerbert 23.09.2014 20:09

Конечно есть! Сделать по человечески или согласится с тем, что "меня и абы чего устроит" и вызывать сохраненные куда-то методы, которые должны идти после загрузки, после загрузки.

caseyryan 23.09.2014 20:54

после загрузки данных послать событие об их загрузке и по этому событию уже вызывать openUserPrivate(e);

Вызвать его можно и без события мыши так:
Код AS3:

openUserPrivate(null);

при условии, что сам объект события никак не используется в обработчике

ZergMaster 25.09.2014 23:32

да, либо создавать евент, либо добавить в sendRequestLRtrue() callback функцию. Типа того:

Код AS3:

public function openPrivateUserFromDialog(e:MouseEvent){
            drawPrivatePeople(e.target.login);
            sendRequestLRtrue(function ():void {
                      openUserPrivate(e);
                      })
            }

Код AS3:

private function sendRequestLRtrue(callback:Function):void {
//происходит загрузка, много всякого всего разного интересного и не очень
//а когда загрузка завершена, все путем, вызываем функцию
callback();
}

Так же таким макаром можно передавать переменные через callback функцию

ЗЫ:Но лучше, конечно, пользоваться событиями. Красивее. )


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

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