SWF-память: у flash Player заканчивается память

#actionscript-3 #flash #animation #memory-management #out-of-memory

#actionscript-3 #flash #Анимация #управление памятью #нехватка памяти

Вопрос:

У меня проблема с SWF-файлом, который я экспортирую из Adobe Flash CS6: в этом Swf-файле много анимаций, в основном созданных с использованием tweens. Однако, хотя эта анимация постоянно зацикливается, объем памяти, используемой Flash Player, продолжает расти, и, конечно, в определенный момент flash Player выходит из строя.

Как я могу избежать этой проблемы с памятью? (Я пытался сжать изображения, используемые в анимации, но этот метод, похоже, не работает)

Комментарии:

1. Вы уверены, что это вызвано анимацией? В это трудно поверить. Сколько памяти использует FP? Сколько изображений и какого размера вы используете? Сжатие не имеет значения, кстати, FP использует 4 байта памяти на пиксель независимо от того, как вы его сжимаете.

2. Произошла утечка памяти. Вы добавили прослушиватели и новые переменные? Для правильной сборки мусора на них не должны ссылаться другие постоянные элементы. Бесконечный цикл => бесконечные прослушиватели, которые нельзя удалить, например. По возможности каждый раз удаляйте их вручную.

3. Я уверен, что эта проблема вызвана анимацией: Я провел несколько экспериментов, запустив диспетчер задач во время воспроизведения Swf. В определенный момент анимации, например, появляется анимированная синусоидальная волна (видеоролик): как раз в тот момент, когда появляется этот видеоролик (внутри него нет кода, только маска и клип tweening movieclip, содержащий png), используемая память начинает расти, пока у flash, как вы сказали, не закончится память.

4. задействован ли вообще КАКОЙ-либо код? Когда вы нажимаете «F9», есть ли в списке какие-либо объекты с кодом временной шкалы? Очень, очень вероятно, что проблема в коде.

5. Единственная причина, по которой я могу представить, что это могло произойти, заключается в том, что вы используете ОГРОМНЫЕ изображения и отображаете их одновременно. Кстати, вы по-прежнему не предоставили никакой полезной информации.

Ответ №1:

Я видел, что у людей на моих занятиях возникает подобная проблема, и чаще всего люди используют векторную графику. Векторная графика использует тонну памяти, моему другу потребовалось 14 ГБ свободного места, чтобы загрузить некоторые деревья в свой проект Flash из-за того, что они были заданы как векторная графика. Итак, я бы быстро взглянул на это, чтобы понять, является ли это проблемой.

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