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

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

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

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
По умолчанию Почему при указании на функцию из мувика во внешнюю среду, ролик тормозит?

Вот код мувике:
Код AS1/AS2:
onClipEvent (load) {
	MadBallSled = 1;
}
onClipEvent (enterFrame) {
	if (MadBallSled == 1){
		_root.MainSled();
	}
}
А вот код во внещнем ЭТОМ ЖЕ кадре:
Код AS1/AS2:
function MainSled():Void{
	function Sled():Void{
			//----------КРАСИВЫЙ СЛЕД
			_root.n++;
			NewName = "doth" + _root.n;
		 	var CL = doth.duplicateMovieClip( NewName, getNextHighestDepth() );
		    CL._x = _root.MadBall._x;
		    CL._y = _root.MadBall._y;
		}
		var time=setInterval(Sled,1);
}
При запуске, роли ОООООЧЕНЬ сильно тормозит. Подскажите, как улучшить? что убрать? опимизировать?
__________________
Надо сменить подпись...

Старый 29.05.2011, 12:16
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Для начала:

1. Убрать код с мувика, записать в кадре.
2. Не объявлять одну функцию, внутри другой, выносите её.

А потом уже можно и дальше смотреть, что у вас не так. А не так у вас то, что с частотой EnterFrame у вас плодится огромное количество интервалов.
__________________
Идите первым!

Старый 29.05.2011, 12:34
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 3  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Хм... дело в том, что я уже пробовал убирать из мувика. Он не работает. Просто я им управляю с клавиатуры, а при движении остается след. Это всё я сделал, чтобы как бы пользователю сначала был недоступен красивый след от объекта, а при покупке след возобновился......
О!!! Я ПРИДУМАЛ!! просто сделаю инвизибл на этот след! ^_^ Спасибо огромное! ^_^

Добавлено через 2 минуты
Хм... что-то не вышло с инвизом..
__________________
Надо сменить подпись...

Старый 29.05.2011, 13:03
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от EndoCrinologist Посмотреть сообщение
Хм... дело в том, что я уже пробовал убирать из мувика. Он не работает.
Решайте.
Код AS1/AS2:
MadBallSled = 1;
this.onEnterFrame = function()
{
 ...
};

Потом п.2.

Потом надо решать, что с интервальными функциями Sled делать, тормоза от этого.
Сейчас они у вас плодятся с частотой fps. Каждую секунду несколько раз (с частотой fps) у вас стартует выполнение отдельного экземпляра функции Sled с частотой тысячу раз в секунду.
То есть, если частота проекта выставлена как 30 fps, то уже в течении первой секунды вы пытаетесь заставить флеш-плеер выполнить функцию Sled примерно 30 x 1000 = 30 000 раз. В течении второй - уже в два раза больше. И т. д.
Всё надо переделывать.


PS
1. Отучайтесь писать код на объектах, вообще смотреть на него нет желания ни у кого.
Не работает - разбирайтесь, что именно, трейсить учитесь.
2. Не давайте имена функциям с прописных букв - это зарезервировано для названий классов.
3. Не давайте своим переменным зарезервированные имена, типа time.
__________________
Идите первым!


Последний раз редактировалось mooncar; 29.05.2011 в 13:28.
Старый 29.05.2011, 13:48
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 5  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Код AS1/AS2:
MadBall.onEnterFrame = function()
{....
}
Вы так имели в виду?
Если да, то получилось очень жестоко... Все элементы задвигались на кадре...
__________________
Надо сменить подпись...

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

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

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


 


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


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