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

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

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

Регистрация: Oct 2004
Сообщений: 149
Question как можно устранить подтормаживание или ускорить выполнение скрипта

Доброго времени суток.

Сделал как положено, с применением метода инкапсуляции ( имеется ядро с набором функций и скин, который к ним обращается, когда загружается куда надо).
В общем, проблема в том, что скин меняет цвет, когда юзер водит по цветовой палитре, всё бы ничего, но вот анимацию самой палитры компьютер уже не тянет и наблюдаются тормоза.

При наведении юзером на одну из ячеек цветовой палитры, скниу передаётся комманда установить setTheme(bgCol, fgCol), а вот вся красота в том, что внутри этой функции выполняется вот что:

Код:
RGBtoHSBFgCol = _root.playeCore.RGBtoHSB(fgCol);
RGBtoHSBBgCol = _root.playeCore.RGBtoHSB(bgCol);

mc1Color = new Color (MC1);
mc2Color = new Color (MC2);
mc3Color = new Color (MC3);
..............
.............
mc34Color = new Color (MC34);


mc1Color.setRGB(_root.playeCore.HSBtoRGB(RGBtoHSBFgCol[0]*coef, RGBtoHSBFgCol[1]*coef, RGBtoHSBFgCol[2]*coef));
mc2Color.setRGB(_root.playeCore.HSBtoRGB(RGBtoHSBFgCol[0]*coef, RGBtoHSBFgCol[1]*coef, RGBtoHSBFgCol[2]*coef));
mc3Color.setRGB(_root.playeCore.HSBtoRGB(RGBtoHSBFgCol[0]*coef, RGBtoHSBFgCol[1]*coef, RGBtoHSBFgCol[2]*coef));
..............
.............
mc34Color.setRGB(_root.playeCore.HSBtoRGB(RGBtoHSBBgCol [0]*coef, RGBtoHSBBgCol [1]*coef, RGBtoHSBBgCol [2]*coef));

Функции RGBtoHSB и HSBtoRGB уже описывал вот в этом топике
RBGtoHSB и HSBtoRGB
только в этом топике они в виде прототипа...
с названия playeCore - сразу ясно что это и есть ядро, в ктором содержаться все функции.

Вот в чём вопрос: как-то возможно ускорить это всё, потому что если юзер быстро начинает водить по пресету, тоанимация пресета начинает тормозить, но цвет меняется ещё боле менее.

Может если разбить вычесления для мувиков в 3-4 функции, хотя попробовал, не выходит, что-бы одновременно выполнялось несколько функций...


Последний раз редактировалось Llex3D; 19.01.2007 в 03:35.
Старый 19.01.2007, 03:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Слишком много вычислений. Почему нельзя загнать результат вычислений в одну переменную и отвещать всем сразу?

И потом, писать полсотни одинаковых строк смахивает на садо-мазо.

Старый 19.01.2007, 03:41
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 3  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
спасибо автору, он продлил мою жизнь
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 19.01.2007, 03:45
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
отсмеялся.

ты не называй это пожалуйста инкапсуляцией, у меня приступы начнутся.

ты про циклы знаешь? for там и тд
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
метод "упрощевания" через "циклизацию":

Код:
var bgArr:Array = new Array();
var num:Nubmer = сколько-всего-их

//инициация
for(var i:Number = 0; i< num ; i++){
bgArr[i] = new Color( this["MC" + (i+1)] );
}
//в функции
var arr:Array = RGBtoHSB(bgCol);
var newBG = HSBtoRGB (arr[0]*coef, arr[1]*coef, arr[2]*coef);
for( i = 0; i< num ; i++){
bgArr[i].setRGB(newBG);
}
Примерно так, не проверял и не собираюсь. От своей инкапсуляции откажитесь - это тормозит процесс.
50 одинаковых строк это сильно. Я видел до этого только 15 в серьезном проекте, отпаивали валерианкой.


Последний раз редактировалось Kikasso; 19.01.2007 в 12:45.
Старый 19.01.2007, 11:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

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

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от __etc
А здесь вообще нет никакой инкапсуляции.
Я кавычки не поставил. Метод можно назвать "закинь код на антрессоли и доставай его оттуда"

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

Регистрация: Oct 2004
Сообщений: 149
мдя.....
Каждый объек получает получает разные цвета и coef для всех разный, цикли не прокатят.
Насколько помню, инкапсуляция - это когда ни инкапсулированый объект ни ядро не имею ни малейшего понятия о схеме реализации кода как в ядре, так и в инкапсулированом объекте.

Ув. Nirth Вы заметили хоть одно обращение на прямую к какой-то переменной из ядра? И вообще, лучше отложить все эти насмешки, а то уже был один топик, только со мной спорили __etc и iNilis. Я книги читал и хорошо помню что такое инкапсуляция. Я вам привел утрированный код, дабы отразить суть вопроса.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от Llex3D
Я вам привел утрированный код, дабы отразить суть вопроса.
Шутка удалась, поздравляю.
Надо сокращать количество операций, причем серьезно.
вот это:
Код:
_root.playeCore.HSBtoRGB(...)
работает заметно медленнее чем это:
Код:
HSBtoRGB(...)

Старый 19.01.2007, 14:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Llex3D
получает разные цвета и coef для всех разный
А почему его нельзя вычислить в цикле? Даже если коеффициент кастомный, то он должен быть свойством обрабатываемого клипа.

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

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

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


 


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


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