PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   iCarDS (http://pccar.ru/forumdisplay.php?f=121)
-   -   iCarDS+Foobar2000 (http://pccar.ru/showthread.php?t=14176)

seriousstas 19.08.2015 18:20

kgena_ua
Цитата:

duzzy, да интересно, только я предпочитаю elplaylist, там большие возможности по настройке
С него всё начиналось :)
И первые версии были на EL , и даже неплохо работала тач прокрутка ,
но когда дошло дело до фоновых картинок - прокрутка списка происходила рывками (картинка в этот момент пробовала мотаться вместе с текстом))),
и выбор пал на JS ..
Цитата:

и главным для меня была возможность изменения размера обложки (например колесом выше) в плейлисте
+ в JS есть синхронное изменение CTRL+колесом всех элементов в тч и обложки , что удобно для разный разрешений дисплеев в авто .
Ну и другие разные фичи - встроенный менеджер плейлистов, прямой поиск альбома с клавиатуры и тд...

kgena_ua 19.08.2015 19:13

Цитата:

но когда дошло дело до фоновых картинок - прокрутка списка происходила рывками (картинка в этот момент пробовала мотаться вместе с текстом))),
seriousstas,
может это было раньше, на старых версиях, а теперь все нормально, претензий не было.

seriousstas 19.08.2015 20:13

Цитата:

Сообщение от kgena_ua (Сообщение 335933)
seriousstas,
может это было раньше, на старых версиях, а теперь все нормально, претензий не было.

Стало интересно , попробовал на домашнем моноблоке с i5-м процом на foobar2000 may be .
Колесом мыши проокрутка нормальная , чувствуется "загруженность" , но скорость приемлемая ,
а вот с тачем (тоесть пальцем) :be:... та-же проблема , что и раньше - тянется картинка за текстом и жутко тормозит ...

duzzy 19.08.2015 21:02

Цитата:

Сообщение от kgena_ua (Сообщение 335907)
duzzy, да интересно, только я предпочитаю elplaylist, там большие возможности по настройке, тем более что я изучил его процентов на 80-90 :smile2:, и главным для меня была возможность изменения размера обложки (например колесом выше) в плейлисте - в elplaylist у меня это вышло более или менее удачно.
И главное. duzzy, можно подробнее про CollectGarbage(), что это за зверь, и как и куда его нужно вставить.

На счет плейлистов от товарища Бретта:), я тоже долго мучился с Эль плейлистом, пытался его настраивать подгонять, а потом случайно попробовал скрипты на WSH, чуть позже набрел на первые варианты плейлистов на WSH, и потом непомню уже в чьей сборке опробовал плейлисты от Бретта. Это мое личное мнение конечно но как мне кажется перспективней выглядят JS так как их можно подгонять как угодно, + последний WSH компонент(1.5.10) от марка2003 позволяет реализовать интерфейс полностью на WSH, и убрать из конфига библиотеку(она конечно быстрая спору нет но настроек визуальных просто нет:)).
Сейчас он сделал полностью переработанный механизм плейлиста, с полностью переработанной прокруткой(механизм похож на работу библиотеки на WSH с тач поддержкой), у него ранее были затыки с позиционированием треков в больших плейлистах и очень большой нагрузкой на проц при его использовании(большие плейлисты отрисовывались очень долго), теперь он эти проблемы решил и как мне кажется получится очень не плохой вариант как для домашнего использования так и для нужд карпс. А так же он почти сделал(думаю скоро закончит, когда с ним списывался он говорил что сейчас на два проекта сразу работает) графическую библиотеку, чем то похоже на Facets http://fav.me/d8onpum:smile2:
Это было мое личное мнение и ни как не реклама WSH и скриптов от вышеуказанного автора:smile2:
По CollectGarbage(), это очень полезная фича если нужно сразу освободить память в JS, почти дословный перевод из файла Notes & Hints.txt из папки doc в компоненте wsh panel mod 1.5.10
Использовал в таком виде...
Код:

function on_timer(id){
...
...
if (dir_move == "right" ? n_x >= 0 : n_x <= 0) {
        pss.GetPanel(c_panel).Show(false);
        //window.SetProperty(c_panel,3);
        //window.SetProperty(n_panel,4);
        c_panel = n_panel;
        n_panel = null;
        c_x = 0;
        n_x = 0;
        timer_anim.Dispose();
        CollectGarbage();       
        move = false;
              }
        window.SetProperty("panel",panel);
...
...

И у меня очередная непонятка))), не знаю каким образом при открытии тулбара изменять размер панели плейлитста, так чтоб потом сохранить возможность нормальной анимации перехода, приходится тушить(false) плейлист на каждой кнопке, и если открыт тулбар и повторно нажать на вызов той же панели что была вызвана в прошлый раз анимируется только старая панель....ааа...жесть проще на видео показать... сейчас быстро сниму..
видос...
https://youtu.be/o-W2_UieCTg
...............
Ну вроде победил эту непонятку, так как хотел не получилось сделать, сделал по другому:)

Lexins 19.08.2015 23:36

Подскажите по MPS:
Как узнать состояние панели - true or false ?

duzzy 19.08.2015 23:50

Цитата:

Сообщение от Lexins (Сообщение 335949)
Подскажите по MPS:
Как узнать состояние панели - true or false ?

а что нужно сделать в итоге с панелью, мне просто так будет проще объянить?
мануалов по компоненту нет он китайский))) так что приходится все методом научного тыка пробовать...
панели можно проталкивать насильно в таком виде...
к примеру плейлист, можно взять номер панели в сплиттере либо ее название, я брал номер в данном примере--->
берем панель 3 показываем
pss.GetPanel(3).Show(true); /*PANEL: [js]*/
и двигаем по координатам
pss.GetPanel(3).Move(0, 3, ww, wh-90, true);
...

Lexins 19.08.2015 23:54

Цитата:

Сообщение от duzzy (Сообщение 335951)
а что нужно сделать в итоге с панелью, мне просто так будет проще объянить?
мануалов по компоненту нет он китайский))) так что приходится все методом научного тыка пробовать...
панели можно проталкивать насильно в таком виде...
к примеру плейлист, можно взять номер панели в сплиттере либо ее название, я брал номер в данном примере--->
берем панель 3 показываем
pss.GetPanel(3).Show(true); /*PANEL: [js]*/
и двигаем по координатам
pss.GetPanel(3).Move(0, 3, ww, wh-90, true);
...

собственно хочется в зависимости от состояния панели (true,false) рисовать другие элементы интерфейса, например подсветку кнопок

duzzy 20.08.2015 00:09

Lexins
ну вполне можно попробовать может и получится, вот все что было вместе с этим компонентом типа README...
Код:

PanelObj{
properties:
        [get] HWND;
        [get] name;
methods:
        bool Move(int x, int y, int w, int h, bool refresh);
        bool Show(bool to_show=true);
        bool IsVisible();
        VBArray GetSizeArray();
        int GetSizeParam(int param);
        string GetExtensionCategory();
        string GetExtensionName();
        void SendMessagex(uint msg, int wparam, int lp);
        void ShowConfiguration();
}

PanelUtils[=pss]
{
methods:
        PanelObj GetPanel(uint id);
}

и то что ты хочешь выглядит примерно так
if (pss.GetPanel(3).Show() == true) {рисуешь здесь то что надо, либо меняешь переменную}
попробуй так...
если графика прописывать надо в function on_paint()...
....
не а не прокатит такой номер... сейчас посмотрю что можно сделать...
вот рабочий вариант...
if (pss.Getpanel(3).isvisible() == false) {
gr.DrawImage(ALIEN_ICO, ww/2-31, wh-48, 60, 60, 0, 0, 178, 178, 0, 155);
}
....

Lexins 20.08.2015 00:39

Цитата:

Сообщение от duzzy (Сообщение 335953)
Lexins
ну вполне можно попробовать может и получится, вот все что было вместе с этим компонентом типа README...
Код:

PanelObj{
properties:
        [get] HWND;
        [get] name;
methods:
        bool Move(int x, int y, int w, int h, bool refresh);
        bool Show(bool to_show=true);
        bool IsVisible();
        VBArray GetSizeArray();
        int GetSizeParam(int param);
        string GetExtensionCategory();
        string GetExtensionName();
        void SendMessagex(uint msg, int wparam, int lp);
        void ShowConfiguration();
}

PanelUtils[=pss]
{
methods:
        PanelObj GetPanel(uint id);
}

и то что ты хочешь выглядит примерно так
if (pss.GetPanel(3).Show() == true) {рисуешь здесь то что надо, либо меняешь переменную}
попробуй так...
если графика прописывать надо в function on_paint()...
....
не а не прокатит такой номер... сейчас посмотрю что можно сделать

СПАСИБО!!!
Подошло вот это:
pss.GetPanel(3).IsVisible() == true ? (...) : (...)
или
if (pss.GetPanel(3).IsVisible() == true) {..}

duzzy 20.08.2015 01:12

Цитата:

Сообщение от Lexins (Сообщение 335954)
СПАСИБО!!!
Подошло вот это:
pss.GetPanel(3).IsVisible() == true ? (...) : (...)
или
if (pss.GetPanel(3).IsVisible() == true) {..}

да не за что! я еще тот кодер)))) про проверку забыл))), голова просто уже квадратная второй день с анимацией борюсь;)

вообще это хозяйство с кнопками можно и в функции кнопок описывать, прописано оно в buttons.txt
вот тут ...\CRIMSON_MPS\themes\CRIMSON\Scripts
там есть описание
function Button
и состояние кнопок
this.changeState = function (state) {
я там пробовал прикрутить вариант чтоб прятать кнопки потом забил и сделал по другому.
...


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

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot