![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2004
Сообщений: 149
|
Доброго времени суток.
Сделал как положено, с применением метода инкапсуляции ( имеется ядро с набором функций и скин, который к ним обращается, когда загружается куда надо). В общем, проблема в том, что скин меняет цвет, когда юзер водит по цветовой палитре, всё бы ничего, но вот анимацию самой палитры компьютер уже не тянет и наблюдаются тормоза. При наведении юзером на одну из ячеек цветовой палитры, скниу передаётся комманда установить 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. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Слишком много вычислений. Почему нельзя загнать результат вычислений в одну переменную и отвещать всем сразу?
И потом, писать полсотни одинаковых строк смахивает на садо-мазо. |
|
|||||
|
4AM Games
|
отсмеялся.
ты не называй это пожалуйста инкапсуляцией, у меня приступы начнутся. ты про циклы знаешь? for там и тд
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: 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. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А здесь вообще нет никакой инкапсуляции.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
|
|
|||||
|
Регистрация: Oct 2004
Сообщений: 149
|
мдя.....
Каждый объек получает получает разные цвета и coef для всех разный, цикли не прокатят. Насколько помню, инкапсуляция - это когда ни инкапсулированый объект ни ядро не имею ни малейшего понятия о схеме реализации кода как в ядре, так и в инкапсулированом объекте. Ув. Nirth Вы заметили хоть одно обращение на прямую к какой-то переменной из ядра? И вообще, лучше отложить все эти насмешки, а то уже был один топик, только со мной спорили __etc и iNilis. Я книги читал и хорошо помню что такое инкапсуляция. Я вам привел утрированный код, дабы отразить суть вопроса. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
Надо сокращать количество операций, причем серьезно. вот это: работает заметно медленнее чем это: |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 14:24. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|