0 Members and 2 Guests are viewing this topic.
Code: [Select]procedure Execute(var State: Integer);var S: String; begin S := 'Bob' + IntToStr(State + 1); // если имена нумеруются с 1 (Bob1, Bob1_b...) BeginUpdateResources; FindResource('Bob').Set('ID', S); // имя текстуры будет BobN FindResource('Bob_b').Set('ID', S + _b'); // имя текстуры будет BobN_b EndUpdateResources;end;
procedure Execute(var State: Integer);var S: String; begin S := 'Bob' + IntToStr(State + 1); // если имена нумеруются с 1 (Bob1, Bob1_b...) BeginUpdateResources; FindResource('Bob').Set('ID', S); // имя текстуры будет BobN FindResource('Bob_b').Set('ID', S + _b'); // имя текстуры будет BobN_b EndUpdateResources;end;
Так эти два скрипта никак друг от друга не зависят. Первым ты переключаешь текстуру для перемотки и без разницы, которая она там по счёту, вторым пользователь выбирает бобины кнопкой или ещё чем там...Структура ресурсов при этом должна быть такой:Первые три пункта - это ссылки, в них нет собственно текстур, иконка у них должна быть "цепочка". Bob и Bob_b должны указывать на текстуру первой бобины для синхронизации со счётчиком.P.S. Во втором скрипте пропущен апостроф в _b', в своём сообщении я исправил.
Это задается на уровне ОС:https://answers.microsoft.com/en-us/windows/forum/all/key-repeat-setting/89bc0de5-7506-4259-8eab-b48155ed39ff
Задержку поставил в минимум; скорость повтора в середину шкалы.
Если кнопка "удерживается" - значит перемотка идет. Без вариантов.
При перемотке в обратную сторону позиция упирается в начало трека и может оставаться так сколь угодно долго, пока пользователь не отпустит кнопку. При этом нет ни воспроизведения, ни перемотки как таковой. Кто-то, наверное, даже и не поймёт, что при этом происходит.
А как в других приложениях, такие параметры тебя устроят, при наборе текста, к примеру?
Кстати, в моих старых скинах при достижении начала при обратной перемотке, бобины останавливаются, по крайней мере в тех, которые успел проверить.
В STOP и сейчас несложно перевести, а вот в PLAY или PAUSE это будет огород, по сути возврат к прежней схеме перемотки и все эти новые доступные фичи остаются за бортом, а коммутация режимов ещё более усложнится. Мне больше нравится когда при обратной перемотке плеер переходит в воспроизведение.Применительно к нашим скинам логичнее всего было бы останавливать плеер как в начале, так и в конце трека, как это происходит в реальной кассете, но останов в конце трека, вроде, как и не нужен. К тому же поймать конец трека оказывается сложнее, чем начало, особенно на МР3. Может это связано с расхождением реального времени звучания с тем, что прописано в тегах, не знаю, но приходится закладываться аж на несколько секунд от конца трека.
... Stop в реальном магнитофоне тоже не произойдет, если я буду насильно давить кнопку перемотки.
Это только применительно к аппаратам с механическим управление и только, если клавиша перемотки не фиксируется. Автостоп был даже в наших носимых шарманках. А в аппаратах с электронным управление автоматика просто не позволит этого сделать.
Короче говоря, давай еще раз проговорим, что по твоему мнению должно происходить с перемоткой, при достижении начала (трека/плейлиста)?
Сквозная перемотка по плейлисту, что сейчас реализована, работает отлично. А вот прежнее поведение (перемотка внутри трека) на фоне её смотрится теперь, ИМХО, некрасиво.Речь даже не про наши "магнитофонные" скины, а вообще про навигацию по треку. При перемотке вперед происходит то же самое, что и при перемотке вперёд по плейлисту, т. е. переход на следующий трек и продолжение перемотки, если кнопка удерживается. При перемотке в обратную сторону позиция упирается в начало трека и может оставаться так сколь угодно долго, пока пользователь не отпустит кнопку. При этом нет ни воспроизведения, ни перемотки как таковой. Кто-то, наверное, даже и не поймёт, что при этом происходит.Мне кажется более логичным было бы следующее поведение. При перемотке назад и достижения начала трека переход в режим PLAY, независимо от удержания кнопки PREV. При перемотке вперёд и достижении конца трека переход на следующий трек (оставаться в конце текущего трека нет смысла) и тоже переход в режим воспроизведения.
Так я уж, вроде, сформулировал всё выше:
С перемоткой назад с упором в начало трека, согласись, ну, некрасивая ситуация получается.
А перемотка вперед получается сквозная, ничем не отличающаяся от перемотки по плейлисту. Вот, представь, запустил пользователь трек, послушал немного, захотельось промотать вперёд, потом ещё промотать, а плеер уже перескочил на следующий трек, начала трека уже не услышит, надо снова перезапускать трек.
Самое главное - при этом никакого вмешательства в логику работы плеера нет, мы только визуализируем его работу.
Не хотелось бы снова нагромождать скрипты, хендлеры и пр. чтоб отлавливать начало трека