Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 22.07.2008, 12:57
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 21  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Лично я отказываюсь разбираться с вашим кодом. Вам не хочется "городить чёта с этими переменными", и в итоге вы мучитесь, пытаясь что-то налепить, не задев ваши локальные переменные. Ну если вам так дорог секс с кодом, я не возражаю, но в этой оргии участия принимать не буду.

Старый 23.07.2008, 09:53
Ruffus вне форума Посмотреть профиль Отправить личное сообщение для Ruffus Найти все сообщения от Ruffus
  № 22  
Ответить с цитированием
Ruffus
 
Аватар для Ruffus

Регистрация: Apr 2008
Сообщений: 82
Неожиданно
Что я могу сказать.
Мучиться особо не пришлось. Локальные переменные и переменные класса прозрачны для подфункций. Единственное, что мне пришлось сделать - это создать делегатов для других методов класса, использовавшихся внутри подфункции. На этом секс закончился.
Кроме того, последний приведённый кусок кода по своей логике не имеет к этому отношения вообще.

Старый 23.07.2008, 13:11
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 23  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Мучиться не пришлось, но прийдется, если работать с этим кодом дальше.
И да, мне кажется, что у вас проблема с InstanceManager.getNextDepth(), который, скорее всего, не предназначен для огромного числа мувиклипов.
А может и еще где-нибудь. Копайтесь в вашем коде, вычисляйте, какой кусок занимает много времени.

Старый 23.07.2008, 14:15
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 24  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Помоему правильно не getNextDepth(), а getNextHighestDepth();
__________________
Убейте меня!

Старый 23.07.2008, 14:24
Ruffus вне форума Посмотреть профиль Отправить личное сообщение для Ruffus Найти все сообщения от Ruffus
  № 25  
Ответить с цитированием
Ruffus
 
Аватар для Ruffus

Регистрация: Apr 2008
Сообщений: 82
2джонатан: там вообще метод getFreeDepth, это статический метод спец. класса.

Код метода из InstanceManager:
Код:
static function getFreeDepth(parent:MovieClip):Number{
	var depth:Number=0;
	while(parent.getInstanceAtDepth(depth))depth++;
	return depth;
}
Как будто бы не очень подходит для тысячи клипов, проверок с каждым разом всё больше. Но тест с getTimer мне показал, что на эти проверки тратится время в десятки раз меньшее, чем на создание объектов MyClip.

Старый 23.07.2008, 18:44
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 26  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Так на что у вас тратится больше всего времени? именно на createEmptyMovieClip?
Как кто-нибудь может вам помочь, если вы не показываете, как и что у вас создается?

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

Старый 23.07.2008, 20:28
Ruffus вне форума Посмотреть профиль Отправить личное сообщение для Ruffus Найти все сообщения от Ruffus
  № 27  
Ответить с цитированием
Ruffus
 
Аватар для Ruffus

Регистрация: Apr 2008
Сообщений: 82
Когда я судил по выводу getTimer, я думал, что больше всего времени занимает MyClip.create(...). Очень сранным было то, что чем дальше, тем медленнее они выводились.
Но я решил по вашему совету попробовать сменить постоянные вызовы depth = InstanceManager.getFreeDepth(this) на простое depth = depth + 1. Тут конечно не всё так просто, но не суть.
После этого положение вещей поправилось. Теперь картина с вложением чуть более 2000 MyClip рисуется за 5 секунд. И, по крайней мере, как я наблюдал, все эти клипы прорисовываются с одинаковой скоростью.
Думаю, что с этой темой можно закончить. Большое спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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