Скрипты для foo_uie_wsh_panel_mod

Список разделов foobar2000 Секреты foobar2000

Описание: Кнопочки, конфиги, секреты, советы.

Сообщение #301 iprad » 06.04.2015, 16:38

меня это смущает:fb.RunMainMenuCommand("Предварительное прослушивание"). Руссифицированный foobar?

Добавлено спустя 55 секунд:
а код кнопки полностью рабочий. Изображения кнопок меняются
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #302 t-s » 06.04.2015, 16:51

iprad:меня это смущает:fb.RunMainMenuCommand("Предварительное прослушивание"). Руссифицированный foobar?
Кнопка то команду выполняет, а вот состояние свое - не изменяет. Другие кнопки так же работают с полным функционалм ... Не в локализации дело

iprad:а код кнопки полностью рабочий. Изображения кнопок меняются

Где меняется? :insane:
t-s
Гость

Сообщение #303 iprad » 06.04.2015, 17:24

скинь весь код своей панели, изображения, и какая версия Foobar и wsh panel mod?

Добавлено спустя 40 минут 35 секунд:
fb.PlaybackPreviewMode.... это что?
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #304 t-s » 06.04.2015, 18:14

iprad:скинь весь код своей панели, изображения
Это проблематично, т.к. к нему надо еще 3 скрипта и с объяснениями что и куда .. мы и так с одной кнопкой зашли в такие дебри :sad:

Возвращаемся к нашим баранам:

Полностью рабочая кнопка (выполняется команда, изменяется "память" состояния кнопки)
Команда на кнопке: "Playback\Stop After Current" - оригинальный Фу
"Воспроизведение\Остановить после текущего" - локализованный Фу
Код: Выделить всё
var sac_on = {normal: imgPath + "SACon.png", hover: imgPath + "SACMH.png"};
var sac_off = {normal: imgPath + "SACoff.png", hover: imgPath + "SACMH.png"};

function createSACButton() {
   return new Button(хх, хх, хх, хх, fb.StopAfterCurrent ? sac_on : sac_off, function () {fb.RunMainMenuCommand("Остановить после текущего");}, fb.StopAfterCurrent ? "Сбросить остановить после текущего трека" : "Остановить после текущего трека");
}
Buttons.SAC = createSACButton();
function on_playlist_stop_after_current_changed(state) {
   Buttons.SAC = createSACButton();
   Buttons.SAC.repaint();
}

Кнопка с ограниченным функционалом (команда выполняется, не изменяется "память" состояния кнопки)
Команда на кнопке: "Playback\Preview Mode"- оригинальный Фу
"Воспроизведение\Предварительное прослушивание"- локализованный Фу
Код: Выделить всё
var prv_on = {normal: imgPath + "PREVon.png", hover: imgPath + "PREVMH.png"};
var prv_off = {normal: imgPath + "PREVoff.png", hover: imgPath + "PREVMH.png"};

function createPRVButton() {
return new Button(хх, хх, хх, хх, fb.PlaybackPreviewMode ? prv_on : prv_off, function () {fb.RunMainMenuCommand("Предварительное прослушивание");}, fb.PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание");
}

Buttons.PRV = createPRVButton();

function on_playback_preview_mode_changed (state) {
   Buttons.PRV = createPRVButton();
   Buttons.PRV.repaint();
}

iprad:какая версия Foobar и wsh panel mod?
Foobar v1.2.2; WSH v1.5.6
t-s
Гость

Сообщение #305 iprad » 06.04.2015, 18:32

fb.PlaybackPreviewMode - где Вы взяли эту команду?
Ради интереса замените на fb.StopAfterCurrent
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #306 t-s » 06.04.2015, 18:36

iprad:fb.PlaybackPreviewMode - где Вы взяли эту команду?
Писал же ... по моей логике ... по аналогии с "fb.StopAfterCurrent"

Добавлено спустя 2 минуты 53 секунды:
iprad:Ради интереса замените на fb.StopAfterCurrent
И что должно произойти .. не работает :insane:
t-s
Гость

Сообщение #307 iprad » 06.04.2015, 18:43

\user-components\foo_uie_wsh_panel_mod\docs - справка по WSH panel mod
такой функции нет
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #308 t-s » 06.04.2015, 18:48

iprad:\user-components\foo_uie_wsh_panel_mod\docs - справка по WSH panel modтакой функции нет
Да я же обратное и не утверждал! Я же спрашивал - где ошибка?
t-s
Гость

Сообщение #309 iprad » 06.04.2015, 18:49

Код: Выделить всё
var prv_on = {normal: imgPath + "PREVon.png", hover: imgPath + "PREVMH.png"};
var prv_off = {normal: imgPath + "PREVoff.png", hover: imgPath + "PREVMH.png"};

var PlaybackPreviewMode = true; //("true"если режим включен, если нет-то "false"

function createPRVButton() {
return new Button(хх, хх, хх, хх, PlaybackPreviewMode ? prv_on : prv_off, function () {fb.RunMainMenuCommand("Предварительное прослушивание");change_PRVButton();}, PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание");
}

Buttons.PRV = createPRVButton();


function change_PRVButton() {
   PlaybackPreviewMode = !PlaybackPreviewMode;
   PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
   Buttons.PRV.repaint();
}

Добавлено спустя 5 минут:
fb.PlaybackPreviewMode - это и есть ошибка. При проверке значения (например var n = fb.PlaybackPreviewMode) возникнет ошибка
fb.* - Это предопределённые функции, вернее даже свойства (список в справке), и самому придумать их не получится
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #310 t-s » 06.04.2015, 19:18

iprad, :smile:
Есть сдвиги - кнопка стала менять состояние, но "PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание"" так и не заработало

Я уже совсем плохо соображаю :insane: , опять двойной change и что делать с
Код: Выделить всё
function on_playback_preview_mode_changed (state) {
   Buttons.PRV = createPRVButton();
   Buttons.PRV.repaint();
}
Да и экзотическое объявление (т.к. у меня скорее ошибочное)
Код: Выделить всё
var PlaybackPreviewMode = true; //("true"если режим включен, если нет-то "false"
P.S. Давайте возьмем тайм-а́ут до завтра

Добавлено спустя 2 минуты 51 секунду:
А с fb.StopAfterCurrent - вопросов нет?
t-s
Гость

Сообщение #311 t-s » 07.04.2015, 12:03

iprad,
Вообщем покрутил и так и сяк - работает почти все. Сейчас так:

Код: Выделить всё
var prv_on = {normal: imgPath + "PREVon.png", hover: imgPath + "PREVMH.png"};
var prv_off = {normal: imgPath + "PREVoff.png", hover: imgPath + "PREVMH.png"};
var PlaybackPreviewMode = false;

function createPRVButton() {
   return new Button(хх, хх, хх, хх, fb.PlaybackPreviewMode ? prv_on : prv_off, function () { fb.RunMainMenuCommand("Воспроизведение/Предварительное прослушивание");change_PRVButton(); }, fb.PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание");
}

function change_PRVButton() {
   PlaybackPreviewMode = !PlaybackPreviewMode;
   PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
   Buttons.PRV.repaint();
}

Не удалось:
1. Обновлять всплывающую подсказку fb.PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание" (не работает или крашится)
2. Возможно, чисто субъективно - обновление срстояния кнопки присходит как-то "вяло"

Добавлено спустя 28 минут:
iprad, :biggrin:
Все добили
Код: Выделить всё
var prv_on = {normal: imgPath + "PREVon.png", hover: imgPath + "PREVMH.png"};
var prv_off = {normal: imgPath + "PREVoff.png", hover: imgPath + "PREVMH.png"};
var PlaybackPreviewMode = false;

function createPRVButton() {
   return new Button(хх, хх, хх, хх, fb.PlaybackPreviewMode ? prv_on : prv_off, function () { fb.RunMainMenuCommand("Воспроизведение/Предварительное прослушивание");change_PRVButton(); }, fb.PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание");
}

Buttons.PRV = createPRVButton();

function change_PRVButton() {
   PlaybackPreviewMode = !PlaybackPreviewMode;
   PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
   Buttons.PRV = createPRVButton();
   Buttons.PRV.repaint();
}

Очень признателен Вам за помощь и уделенное мне время - большое спасибо :beer:
t-s
Гость

Сообщение #312 iprad » 07.04.2015, 13:37

Одно замечание:
Buttons.PRV = createPRVButton();

function change_PRVButton() {
PlaybackPreviewMode = !PlaybackPreviewMode;
PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
Buttons.PRV = createPRVButton();
Buttons.PRV.repaint();
}

Кнопка создется n-раз... сколько раз нажали - столько кнопок. Правильнее просто создать один раз кнопку и менять её свойства. При наличии очень большого количества кнопок в таком подходе неизбежно возникнут "тормоза"
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #313 t-s » 07.04.2015, 14:17

iprad:Одно замечание:Buttons.PRV = createPRVButton();
iprad, ? :insane: ?
Если прописывал по другому - краш или не обновлялась PlaybackPreviewMode ? "Сбросить прослушивание" : "Прослушивание"
И по моим скромным представлениям: Buttons.PRV = createPRVButton(); обновляется функцией function change_PRVButton()
t-s
Гость

Сообщение #314 iprad » 07.04.2015, 14:29

function change_PRVButton() {
PlaybackPreviewMode = !PlaybackPreviewMode;
PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
Buttons.PRV = createPRVButton();
Buttons.PRV.repaint();
}

заменить на:

function change_PRVButton() {
PlaybackPreviewMode = !PlaybackPreviewMode;
PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
PlaybackPreviewMode ? Buttons.PRV.tiptext = "Сбросить прослушивание" : Buttons.PRV.tiptext = "Прослушивание"
Buttons.PRV.repaint();
}

Вроде должно работать... :wink: на на 100% не уверен...

И ещё: fb.PlaybackPreviewMode - забудь и используй "PlaybackPreviewMode" - простая переменная, обозвать можно как душе угодно...

fb.* - это примерно как педали в автомобиле.... их должно быть 3!(в авто, в foobar конечно больше, но это не меняет суть)
fb.PlaybackPreviewMode - это Ваша попытка добавить четвёртую педаль... вроде есть(её нет) - но ни на что не влияет. Учитесь сначала читать инфу и справку к любому плагину :hi:
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #315 t-s » 07.04.2015, 14:59

заменить на:

function change_PRVButton() {
PlaybackPreviewMode = !PlaybackPreviewMode;
PlaybackPreviewMode ? Buttons.PRV.alterImage(prv_on) : Buttons.PRV.alterImage(prv_off)
PlaybackPreviewMode ? Buttons.PRV.tiptext = "Сбросить прослушивание" : Buttons.PRV.tiptext = "Прослушивание"
Buttons.PRV.repaint();
}

Срабатывает через раз, меняет подсказку случайным образом :nervious:

iprad:И ещё: fb.PlaybackPreviewMode - забудь и используй "PlaybackPreviewMode" - простая переменная, обозвать можно как душе угодно...
В коде у меня стоит PlaybackPreviewMode :hi: Мне на форуме не доступно редактирование :smile:
t-s
Гость

Сообщение #316 iprad » 07.04.2015, 15:10

Проблема в синхронизации...
я не знаю как определить состояние PlaybackPreviewMode... В этом одно из отличий от fb.* Нельзя получить текущее состояние... Ну не предусмотренно!
var PlaybackPreviewMode = false подразумевает что опция отключена в меню
var PlaybackPreviewMode = true подразумевает что опция включена в меню
Делайте выводы...
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #317 t-s » 07.04.2015, 15:28

iprad:Делайте выводы...
Да уже сделал - захотел раз в году кнопочку добавить и .. ни хрена себе за хлебушком сходил (с) :biggrin:

А так,вообщем, оставляю свой рабочий вариант ... другие кнопки по этой схеме работают давненько ...думаю, и эта не подведет :wink:

Еще раз - спасибо :beer:

Добавлено спустя 11 минут 43 секунды:
Вылезла бяка небольшая - если уйти на перезагрузку с "включенной" кнопкой, то после перезагрузки - состояние кнопки инвертируется :nervious:
t-s
Гость

Сообщение #318 iprad » 07.04.2015, 15:47

iprad:Проблема в синхронизации...
я не знаю как определить состояние PlaybackPreviewMode...

PlaybackPreviewMode - от этой переменой и зависит состояние кнопки и подсказки. true - одно значение, false - совсем другое...
Я же писал Вам - изучите для начала основы JScript...
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Сообщение #319 t-s » 07.04.2015, 16:15

t-s:захотел раз в году кнопочку добавить и .. ни хрена себе за хлебушком сходил (с) :biggrin:

iprad:Я же писал Вам - изучите для начала основы JScript...

И через год, думаете я еще что-то вспомню :biggrin: ... как-то не продуктивно угробить столько времени для написания 10 строк :smile:

iprad:я не знаю как определить состояние PlaybackPreviewMode...

Ну и ладненько - на нет и суда нет :hi:
t-s
Гость

Сообщение #320 iprad » 07.04.2015, 16:45

t-s:И через год, думаете я еще что-то вспомню ... как-то не продуктивно угробить столько времени для написания 10 строк
Извиняюсь конечно за грубость с моей стороны - *** :rambo:, но думаю поступлю правильно:
Что-бы решить твой вопрос в частности, надо иметь представление в общем о теме, в которой ты размещаешь свои вопросы. Если ты не знаком с азами программирования - сначала изучи их. И если ты не собираешься через год что-то вспоминать из этой темы - то ты явно попал не в ту тему. Если нет желания - качай готовые сборки и пользуйся ими - не надо засорять тему своими глупыми вопросами и тратить чужое время.

Грубо - но думаю справедливо.

Давайте задавать вопросы и решать проблемы в этой теме по особенностям WSH Panel Mod, а не по особенностям JScript или VBScript.
Для этого есть сайт Microsoft...
iprad M
Аватара
Репутация: 89
С нами: 11 лет 2 месяца

Пред.След.

Вернуться в Секреты foobar2000