Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подпрограммы (http://www.flasher.ru/forum/showthread.php?t=113003)

Ruffus 16.06.2008 14:13

Подпрограммы
 
Вопрос такой.
Flash умеет воспринимать сложенность функций? Можно ли, скажем,
внутри метода класса описывать вспомогательные подпрограммы?
А то делаю, и что-то не работает никак.

chingachgoog 16.06.2008 14:23

А что не работает-то?
Класс - та же функция. Метод класса - функция в функции по сути.
А функция - это подпрограмма и есть. И можно внутри функции сколько угодно (почти :) ) раз вложенных функций вызывать.

Ruffus 16.06.2008 15:24

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

iNils 16.06.2008 15:29

Цитата:

Сообщение от Ruffus (Сообщение 745812)
внутри метода класса описывать вспомогательные подпрограммы?

Можно, но так никогда не делайте. Время их жизни, это время выполнения метода. И при каждом вызове метода, они будет заново создаваться. А это плохо.

Ruffus 16.06.2008 21:49

Это значит, что вложенные функции не приемлемы в принципе?

iNils 16.06.2008 22:10

Цитата:

Сообщение от Ruffus (Сообщение 745918)
Это значит, что вложенные функции не приемлемы в принципе?

Я знаю только единственный случай, когда без вложенной функции не обойтись, это в классе Delegate. Во других случаях используйте приватные метода.

Ruffus 17.06.2008 02:07

Хорошо

chingachgoog 17.06.2008 15:16

Цитата:

Сообщение от Ruffus (Сообщение 745918)
Это значит, что вложенные функции не приемлемы в принципе?

Почему? Очень даже приемлемы.
Это используется в ООП или при инициализации событий.
(вложенная функция не является методом функции-оболочки)

iNils 17.06.2008 17:53

Цитата:

Сообщение от chingachgoog (Сообщение 746023)
Это используется в ООП или при инициализации событий.
(вложенная функция не является методом функции-оболочки)

Он говоорит об описании тела функции внутри метода, а не об создании ссылки для обработчика событий.

chingachgoog 17.06.2008 18:48

И что плохого в описании тела функции внутри метода (внутри функции-оболочки)?
Просто надо будет понимать, что происходит: внутренняя функция станет уникальным методом объекта активации функции-оболочки.
Вы же создаете локальные переменные внутри функции? Так они точно также принадлежат объекту активации. И никто не париться, что их не надо использовать и что они существуют лишь на время жизни объекта активации :)


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

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