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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 13.10.2004, 20:13
Tauron вне форума Посмотреть профиль Отправить личное сообщение для Tauron Найти все сообщения от Tauron
  № 1  
Tauron

Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 8
Question Вопрос по тормозам

Делаю я тут мувик с шариками, массив шариков появляется и крутится, сначала один, потом второй. Спасибо, кстати, МоНаХу за принцип Есть один вопрос- когда массив шариков только появляется в мувике через attachMovie появляются тормоза для всего остального, происходящего в мувике в данный момент. Понимаю, что быть может всему виной достаточно большое количество элементом или недостаток ресурсов мозга, но может все-таки кто-нибудь глянет код и подскажет советом, как можно избавиться от лагов?
Заранее большое спасибо.
Вложения
Тип файла: zip source.zip (47.1 Кб, 29 просмотров)

Старый 13.10.2004, 21:48
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 2  
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Гм... Ну ответ в том, что шариков ДЕЙСТВИТЕЛЬНО много, и ты КАЖДОМУ присваиваешь на onEnterFrame свою функцию.
Не знаю, как сделать проще, но есть пара идей.
1. Простая. Написать одну прототипную функцию и назначать ее всем шарикам.
MovieClip.prototype.myFunc=function() {...};

for(i=1;i<=дофига;i++) {
this["ball"+i].onEnterFrame=myFunc;
}

2.Сложная. Попробовать сделать так, чтобы расположение и перемещение шариков обрабатывал один, внешний по отношению к ним клип. Наверное снова через массивы.

Что тормоза исчезнут совсем не уверен, но работать точно будет быстрее.
__________________
...Тебе страшно? Мне - нет.

Старый 14.10.2004, 14:54
Tauron вне форума Посмотреть профиль Отправить личное сообщение для Tauron Найти все сообщения от Tauron
  № 3  
Tauron

Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 8
По пункту 2 делал я до этого наверно также как ты советуешь. Был внешний клип, который размножал шарики, делал из них массив и все движение через циклы. Может из-за корявости, может само по себе, но было очень тормознуто. Тогда-то мне и посоветовали сделать так, как сделал сейчас...
А по первому пункту попробую, спасибо за предложение...
Кстати, ты вот смотрел клип по моему исходнику. Заметил, что перед появлением обоих массивов шариков в левом верхнем углу на долю секунды появляется один большой шар... Я так полагаю, что это- эталон, правильно? Но почему он там появляется? Я уж ему и писал конструкции, типа ball2._visible=false, но он все равно мелькает.. Что я делаю не так?

Старый 14.10.2004, 21:43
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 4  
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
гм. не заметил. посмотрю еще разок.
Но эталоном это может быть только если ты дупликэйтом пользуешься, при аттаче никаких эталонов в рабочей области не возникает.
__________________
...Тебе страшно? Мне - нет.

Старый 15.10.2004, 01:17
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 5  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Это не эталон... Это - онИнтерФрэйм. Посмотри - у тебя аттачируются мувики, которые на вход в кадр меняют свои свойства, но изначально они - большие. И первую долю секунды не один даже, а куча мувов на одной координате висят со 100% scale-ом. Если бы это был эталон, то и координата у него была та же, что и в первом кадре.

А эталон на самом деле не нужен -)

Тормоза, как я понял, ты никогда не убьешь, потому что у тебя шарики создаюся все 24*9 штук разом. Такой цикл сложно переварить. Создавай их заранее, прелоадер сделай какой-нить.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 15.10.2004, 10:49
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 6  
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Посмотрел снова. Да, есь такая штука. artfla$her правильно сказал, что при аттаче они у тебя с дефолтными свойствами, и лишь на следующем кадре - все как надо.
Вижу пару способов:
1. Задать все св-ва уже при аттаче. Зае...ёсся

2. Проще. this.attachMovie("ball","ball"+i,i,{_visible:false});
а на следующем кадре
for(i=1;i<=дофига;i++) {
this["ball"+i]._visible=true;
}

Цитата:
прелоадер сделай какой-нить.
Тут прелоадинг не спасет. Это дело проц напрягает, отсюда и тормоза. А не из-за неполной загрузки.
__________________
...Тебе страшно? Мне - нет.

Старый 15.10.2004, 12:56
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 7  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Я не про загрузку. Прелоадер - только для виду, картинка, не более, можно - анимация. А в это время аттачировать заранее шарики. Когда все саттачируются и определятся - начинать фильм.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 15.10.2004, 13:26
Ромастый вне форума Посмотреть профиль Отправить личное сообщение для Ромастый Найти все сообщения от Ромастый
  № 8  
Ромастый
 
Аватар для Ромастый

Регистрация: Jan 2004
Адрес: На чердаке.
Сообщений: 1,112
Может и поможет... Хотя не думаю, что сильно.
Кстати, как вариант - аттачить не циклом for, а ввести счетчик
на onEnterFrame, т.е. за каждый кадр будет прибавляться по одному или по несколько шариков.
И смотреться возможно будет эффектнее, и проц плавнее нагружаться начнет, так что резкого скачка не будет. А плавное притормаживание не так заметно.
__________________
...Тебе страшно? Мне - нет.

Старый 18.10.2004, 20:40
fiot вне форума Посмотреть профиль Отправить личное сообщение для fiot Посетить домашнюю страницу fiot Найти все сообщения от fiot
  № 9  
fiot
 
Аватар для fiot

Регистрация: Nov 2001
Адрес: Kyiv
Сообщений: 158
Отправить сообщение для fiot с помощью ICQ
Tauron
немного оптимизировал...

единственное что может помочь, это просто сделать сначало столбец с шариками а потом над ними извращаться. т.е производительность вырастет на количество всех элемнтов / количество рядов.
_ _ _ _
|x,x,x,x| |X,X,X,X| _ _
|x,x,x,x| -> - - где Х - | x |
- - | x |
- -
Вложения
Тип файла: zip source_.zip (7.5 Кб, 374 просмотров)
__________________
file-> new-> F9 -> Ctrl+v/*code*/ ->ctrl+enter


Последний раз редактировалось fiot; 18.10.2004 в 20:47.
Старый 19.10.2004, 18:50
Tauron вне форума Посмотреть профиль Отправить личное сообщение для Tauron Найти все сообщения от Tauron
  № 10  
Tauron

Регистрация: Oct 2004
Адрес: Санкт-Петербург
Сообщений: 8
Всем большое спасибо за помощь!
Код слегка соптимизировал, удалил один ряд шариков, стало лучше. Попозжее продолжу копание в этих шариках, сейчас времени нет, надо дальше двигаться..
С тем, что я принял за эталон тоже разобрался.
Еще раз спасибо

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

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

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


 


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


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