Форум 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=194990)

Evgan 26.02.2013 13:58

Последовательность выполнения методов
 
Приветствую всех.
Хотелось бы закрыть пробел в вопросе о последовательности выполнения методов в as3.


К примеру, имеется некий метод "update_all()",
в котором одним за одним происходит вызов других методов:
Код AS3:

public function update_all():void {
                        this.update_1();
                        this.update_2();
                        this.update_3();
                }

Верно ли я понимаю, что все эти три метода "update_1()", "update_2()" и "update_3()" будет выполняться одновременно (параллельно друг другу)? Если это так, то каким способом возможно сделать так что бы они выполнялись последовательно (то есть, что бы выполнение метода "update_2()" стартовало только после того как будут выполнены все итерации метода "update_1()")?

Может метода "update_1()" объявить как "set update_1()":
Код AS3:

private function set        update_1 (_value:String):void {
 
                }

и вызывать его "с присвоением":
Код AS3:

this.update_1 = '';

Гарантирует ли такой способ то, что метод "update_2()" "стартанёт" после того как будет выполнены все итерации в теле метода "set update_1()"?

Спасибо.

gloomyBrain 26.02.2013 14:02

Цитата:

Верно ли я понимаю, что все эти три метода "update_1()", "update_2()" и "update_3()" будет выполняться одновременно (параллельно друг другу)?
Нет, неверно. Методы выполняются в порядке, в котором они присутствуют в коде.

Цитата:

Может метода "update_1()" объявить как "set update_1()":
Акцессоры (геттеры и сеттеры) - это лишь "синтаксический сахар", фактически они ничем не отличаются от обычных методов. И порядок их выполнения точно такой же, как и для всех остальных методов.

Evgan 26.02.2013 14:08

Цитата:

Сообщение от gloomyBrain (Сообщение 1122479)
Нет, неверно. Методы выполняются в порядке, в котором они присутствуют в коде.

Подскажите пожалуйста, где можно почитать об этом, так как меня уверяют что as3 асинхронен. Или асинхронность as3 проявляется в другом?

gloomyBrain 26.02.2013 14:28

Асинхронных методов непосредственно в AS3 нет. Есть лишь обертка вокруг того, что делает FlashPlayer.
Если на пальцах, то есть всего 2 разновидности кода во Flash - код, который написал программист (Вы, например) и код который написал разработчик самого FlashPlayer (сотрудник Adobe).
Код который пишете Вы всегда синхронен и выполняется именно в том порядке, в котором написан.
Код который написан где-то внутри FlashPlayer может быть каким угодно, синхронным или асинхронным. Но в случае если код асинхронный - он обязательно уведомит Вас о том, что он таки закончил выполняться. Для этого во Flash есть события (flash.events.Event), о которых можно почитать в справке.

Evgan 26.02.2013 14:33

gloomyBrain спасибо большое за разъяснение.


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

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