Тема: onClipEvent
Показать сообщение отдельно
Старый 15.05.2006, 13:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 19  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Конечно тестил, надо было не прерывать.

Madasan, твой пример мне непонятен, this в функции enteRFrame куда ссылается? delete удаляет саму функцию из памяти, а не объект, который её содержит. Тем более, ты после удаления функции (которой ещё нет), присваиваешь ей значение и конечно же видишь тормоза. Я не вижу смысла удалять функцию перед тем, как заново ей присваивать значение. Как правило, если нужно остановить onEnterFrame, то останавливается он не на время выполнения двух строк кода, а на гораздо большее. Возможно, постоянно медленно работающее приложение тебя устроит больше, чем приложение, которое, хоть и подтормаживает при выполнении действий с onEnterFrame, но после их выполнения работает ощутимо быстрее...

null не удаляет функцию из памяти, это можно увидеть в trace:
Код:
Movie Clip: Target="_level0.test_5014mc"
Variable _level0.test_5014mc.onEnterFrame = null
Movie Clip: Target="_level0.test_5015mc"
Соответственно, если клип имеет у себя onEnterFrame, то значит он подписан на enterFrame, со всеми вытекающими...
Даже если не подписан, всё равно у клипа есть переменная, которая в любом случае отжирает память.

А вот результат с delete:
Код:
Movie Clip: Target="_level0.test_6815mc"
Movie Clip: Target="_level0.test_6816mc"
Movie Clip: Target="_level0.test_6817mc"
Комментировать не буду. Homo Sapiens, видна разница между delete и null?

Функцию нужно убить, если она вам не нужна, в просто так забивать null-ем память лишний раз не стоит.

Кто-то скажет, что мол, такого количества объектов врядли у кого-то будет (а падение производительности в два раза ощутимо). Согласен, но если часть onEnterFrame выполняет сложные вычисления, а другая часть просто отжирает процессорное время, ничего не делая, то потом можно не удивляться, почему тормозит...


Последний раз редактировалось etc; 15.05.2006 в 13:32.