Цитата:
|
В таком случае у меня комплилятр ругается на создание модификатора управления доступом внутри функции.
|
Правильно - внутренних функций в AS3 нет (как и в Java, C#, C, C++, haXe). Вроде из популярных - только Pascal их имеет и при этом они не являются замыканиями.
Создайте обычный метод класса рядом, не надо его внутрь другого метода пихать
Цитата:
|
Ничего себе, такой большой разброс (800 - 200).
|
Например из метода вернули функцию, котрая возвращает какое-то число, но в этом методе ещё создавали битма-даты, причём не маленькие - функции они не нужны (или в будущем будут не нужны), но контекст захватился - и эти битмапы должны висеть в памяти. Т.е. тут проблема не в том что анонимная функция много весит (весит она мало), а в том, что она может зацепить что-то очень большое в памяти. И очень тяжело это отследить.
Если эти битмапы были в объекте - к объекту можно достучаться и переназначить их на более актуальные, а к захваченному функцией контенту - не достучишься - пока функция нужна - весь неактуальный мусор будет висеть в памяти.
А если представить что в одних анонимках, захвативших контекст в добавок создаются другие анонимки - уже захватывается и контекст главной анонимки и контекст ранее её захваченный у нормального метода - получается такое дерево из анонимок.
И пока _все_ ссылки на все анонимки этого дерева не похеришь - контексту нормального метода не видать сборщика мусора как своих ушей
