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

Denis_Pryanikov 23.11.2011 10:00

Объявление переменных
 
Скажите, если, допустим в функции я создаю переменную и потом несколько раз вызываю функцию...
Код AS3:

function someFunction() {
    var someVar : int;
}

то предыдущая созданная переменная someVar затирается или продолжает висеть в памяти?

Aquahawk 23.11.2011 10:31

Затирается. Точнее работа с памятью организована чуть хитрее. Эта переменная создастся заново, а старая повисит некоторое время в памяти и потом сотрётся. Можете не обращать на них внимание. Как только памяти станет нехватать все ненужные переменные будут стёрты.
А вы в код вы пишете в кадрах во Flash?

Denis_Pryanikov 23.11.2011 10:32

пишу в классах в Flash CS5
это попытка поиздеваться?

Ookami 23.11.2011 12:25

Это попытка подтолкнуть к верному решению и избежать ряда проблем ;)

Aquahawk 23.11.2011 12:32

Ни в коем случае не издёвка. Просто без модификатора доступа часто пишут вложенные функции, а это путь к провалу и утечкам памяти. Вложенные функции вообще не стоит применять т.к. они генерируют огромное количество утечек памяти. Вложенные функции можно применять если вы знаете что такое замыкание, зачем оно нужно, и не можете без этого обойтись. А в то что нельзя обойтись без замыканий я не верю. Если хотите познакомиться с этим зверем то рекомендую что-нибудь типа http://habrahabr.ru/blogs/webdev/38642/ Не обращайте внимания на то что эта статья про javascript. Язык ActionScript 3, как и JavaScript реализует стандарт ECMAScript 262-3 и некоторые вещи из существовавшего на тот момент драфта 262-4. В силу этого они, в некоторой степени, являются функциональными языками, и это стоит учитывать.

Добавлено через 6 минут
В той-же статье, кстати, написано в какой ситуации someVar не будет удаляться а произойдёт утечка.


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

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