0 Members and 1 Guest are viewing this topic.
Ооо! У моего отца была такая только чёрная, но ваш аппарат по симпатичнее будет.+1 за работу.
Крайние положения ручек тембра и громкости другие были. Минимум был справа-вверху, Максимум был слева-вверху. Там двойная линия идет над клавишами и вправо, вот те риски которые в нее упираются, они и крайние. Громкость почему-то выкручивается до 99% а не до 100%. Визуализацию пленки в кассете считаю лучше сделать по всему плейлисту, а не по одной песне. Анимацию кнопки предлагаю сделать без удерживания в нажатом положении, она открывала крышку кассеты и вставала обратно. При проигрывании была нажата только кнопка Пуск и все.Конечно, и так вид прекрасный! Но чем ближе к оригиналу, тем лучше!
Уточнение по поводу положений регуляторов очень ценное, ПОФИКСИЛ.На счёт 99% громкости, - такое имеет место быть, если регулировать громкость протаскиванием ЛКМ. А вот при регулировании СКРОЛЛОМ громкость докручивается до 100%. И я абсолютно уверен, что регулирование скроллом на порядок удобнее!Клавиша выброса кассеты в скине выполняет функцию вызова плейлиста, его же состояние и индицирует, аналогично реализовано во многих моих скинах, менять логику поведения считаю нецелесообразным.
Read more...Спасибо за исправление!И за инфу насчет регулирования громкости скроллом, не знал.Однако ситуацию все еще можно улучшить. Во-первых, хотя пределы ручек громкости и тембра стоят правильно, работа регулятора тембра противоположна реально существовавшей. Это произошло потому, что у вас ручка тембра увеличивает НЧ, тогда как в реальности увеличивала ВЧ. Думаю, можно поменять местами положения 0% и 100% тембра и оставить регулировку басом, я за визуальное соответствие образа магнитофона реальности. Насчет работы кнопки открывания крышки не могу согласиться. Дело в том, что эта кнопка не только открывала крышку, но и выталкивала кассету вверх, это делалось специальным рычажком, который выталкивал кассету за правый нижний край, и при нажатой кнопке открывания лотка рычажок поднимался примерно до уровня верха кассеты в установленном ее состоянии. То есть, физически невозможно было воспроизведение музыки при нажатой кнопке открывания. Также, у вас кнопка останова может находиться в нажатом состоянии, а этого не было. Кроме того, клавишу записи невозможно было нажать (ход ее сокращался до 1-2 мм), при нажатой клавише воспроизведения. Клавишу записи можно было нажать первой, и у нее было нажатое состояние, и с ней можно было нажать пуск, у этих двух клавиш было общее нажатое состояние Только клавиши записи и воспроизведения могли фиксироваться в нажатом состоянии. Не уверен как лучше сделать работу статуса отображения плейлиста, имхо он вообще востребован только если плейлист угнан куда-то в край экрана или под плеер, может быть вместо статуса отображения можно сделать команды "Показать плейлист справа" и "Показать плейлист снизу" в контекстном меню кнопки открытия. Или, если плейлист виден - никак это дополнительно не отображать, он сам виден, тем более что его при этой обложке нужно отображать чтобы выбирать момент внутри песни, подобной полосы вне плейлиста я не нашел. А если нажатие на кнопку открытия должно привести к скрытию плейлиста, можно сделать это небольшим фейдом.
Скин плеера, - это не симулятор конкретного магнитофона, это оболочка плеера, и приходится как-то выкручиваться, компенсирую отсутствующие, но необходимые элементы управления. По этой причине часть органов управления выполнены в виде "стелс-кнопок", а что-то привязано не совсем адекватным прототипам. Поскольку у магнитофона отсутствует клавиша ПАУЗА, на момент создания скина я не придумал ничего лучше, чем навесить её на клавишу СТОП. По этой причине она и остаётся нажатой, индицируя состояние ПАУЗА. Повторным нажатием воспроизведение будет остановлено. Аналогично сделано и у Легенды. Впрочем, позже, столкнувшись с аналогичной проблемой - отсутствием клавиши ПАУЗА у магнитофона NordMende, я поступил по другому, навесив паузу на клавишу ПЛЕЙ. Какой из вариантов лучше?.. Кстати, обращайте внимание на хинты, они подскажут, чего ожидать от того или иного органа...Бас, - это не инверсия регулятора ВЧ, а реализовывать полноценный регулятор ВЧ, заменяя родной эквалайзер, здесь нелепо.
Состояние "Пауза" можно индицировать тем, что ни одна клавиша не нажата, но пленка на бобинках кассеты остается на месте. В этом состоянии нажатие "Останов" сбрасывает текущую песню на начало. Клавиша Пуск начинает воспроизведение, при этом она становится нажатой. Повторное нажатие не делает ничего.Клавиша Останов останавливает воспроизведение, при этом все клавиши становятся не нажаты, позиция песни не меняется. Повторное нажатие сбрасывает позицию песни, это отображается изменением положения пленки на бобинках.Реализовывать регулятор ВЧ, тем более подменять им эквалайзер, не надо конечно, но было бы правильно поменять местами 0% и 100% на ручке тембра, наименьше басов было при положении ручки влево-вверх. И ручка тембра всегда была в этом положении при воспроизведении, иногда ВЧ не хватало и в этом положении, каким-то значимым запасом по ВЧ аудио программы в СССР не баловали, а при перезаписи они еще и нередко снижались.
Обновил. Клавиши, которые не должны фиксироваться, - не фиксируются. Регулятор тембра теперь "многостаночник", - вся его подноготная в меню на надписи ТЕМБР...
Read more...Попробовал. Кнопки, практически совсем хорошо. Только кнопка "Запись" все еще нажимается, если нажат "Пуск". Но это мелочь. Также, при нажатой "Пуск" можно нажать "Открыть", чего не могло быть, но это хороший компромисс, это стоит оставить.Насчет ручки тембра, не думаю что идея с меню хорошая. У нас исходно 2 интерфейса, которые в обложке смешиваются: магнитофона и муз.плеера. Поэтому компромиссы неизбежны, но повторить по возможности интерфейс магнитофона это хорошая цель. И у него была одна регулировка тембра, НЧ-ВЧ. Вот на ручку я бы повесил одну эту регулировку с одним ее смыслом. Всех остальных регулировок не было, ни хоруса, ни стереобазы, ничего этого, и все это хорошо вынести в диалог эквалайзера и прочих настроек, поднимаемый по надписи над ручкой, как уже сделано. Но и ручке стоило бы придать тот функционал который был, не только касательно объема функционала (только НЧ-ВЧ), но и касательно направления регулировки, т.е. максимум НЧ в положении справа-сверху, а максимум ВЧ в положении слева-сверху. Т.е. тут я остаюсь при своем мнении, но попытался получше его обосновать. Кстати, предложенная многостаночность ручки тембра имеет тот недостаток, что у нее на 5 параметров одна ручка для индицирования, т.е. плохая наглядность. Но сами по себе все регулировки кроме "ВЧ-НЧ" к магнитофону не относились, и нет смысла привязывать их к его контролам, для них диалог самое то, а "ВЧ-НЧ" на магнитофоне была, и ее надо бы оставить, но с тем смыслом регулировки, какой на нем был.И, пардон, вернусь к той идее, что положение пленки стоило бы отдать под индицирование прогресса времени плейлиста (рид-онли), а не одной песни. Кстати, пробовал обложку какого-то катушечника, там такая же забавность. Встает вопрос где делать прогресс времени песни. Я бы под это дело предложил полоску с надписью "кассетный магнитофон" и знаком качества. Можно в состоянии "Воспроизведение" вести по нижней черной линии этой надписи черную же крупную точку, и убирать ее в состоянии "Остановлено". Чтобы и вид можно было иметь оригинальный без точки, и прогрессом управлять, и чтобы даже когда индикатор есть он большого визуального искажения не вносил.
На 4К скин не грузится:Can't load skin "Electronica-302.acs5": ChangetcBobScript: Error at 5:3 - Access violation at address 0000000000528CD6 in module 'AIMP.exe'. Read of address 0000000000000034Подробности во вложении.
У тебя какая версия плеера? Сборка из альфа-канала сейчас поломана.
Стояла 2622, обновил до 2624, теперь загружается. Но с остальными скинами никаких проблем и на 2622 не было.
На 2622 должно было быть норм.
Ради интереса вернул 2622(х64) - результат прежний, ругается на какой-то скрипт.2628 - норм.
Владимир, у меня к тебе предложение: раз уж столько понапихано в скин этого детища соврадиопрома, сделать выбор моделей и кассет по примеру этого скина. Это и наглядно и более цивилизованно. Можно все миниатюры собрать в одну картинку и по клику мыши переключать. Будет ещё одно окно - нормальный диалог настроек скина.
Выбор кассет вращением колеса мыши да ещё в неком потаённом месте - тоже не лучшее решение, слишком быстро всё мельтешит и сбивают с толку клики по слайдеру.
Кнопку выброса кассеты не надо было делать с фиксацией чтоб показать плейлист, нелогично получается - идёт воспроизведение, а та кнопка нажата. И плейлист всё же лучше делать видимым при первом применении скина. Кстати, поменял бы уж его, а то даже перетащить его не за что.
Ещё: при выборе кассет сразу два одинаковых хинта присутствуют.
Выбор же по картинке, согласен, - наглядно и удобно. Для смены интерфейса самое то. Подумаю...
... там ещё в окне кассеты прогрессбар имеется.
А клик... Может его отключить, оставить только скролл?..
Когда я впервые запускаю какой-нибудь скин, а поверх него по центру висит плейлист, мне первым делом хочется его закрыть, дабы не мешал лицезреть сам девайс.
Я таскаю плейлист за обложку трека ...
Владимир, у меня к тебе предложение: раз уж столько понапихано в скин этого детища соврадиопрома, сделать выбор моделей и кассет по примеру этого скина. Это и наглядно и более цивилизованно. Можно все миниатюры собрать в одну картинку и по клику мыши переключать. Будет ещё одно окно - нормальный диалог настроек скина.Выбор кассет вращением колеса мыши да ещё в неком потаённом месте - тоже не лучшее решение, слишком быстро всё мельтешит и сбивают с толку клики по слайдеру.Кнопку выброса кассеты не надо было делать с фиксацией чтоб показать плейлист, нелогично получается - идёт воспроизведение, а та кнопка нажата. И плейлист всё же лучше делать видимым при первом применении скина. Кстати, поменял бы уж его, а то даже перетащить его не за что.
procedure Execute(Sender, Arguments: TComponent);const ImgW = 92; // размеры ImgH = 64; // миниатюрыbegin with Arguments do if Get('Button') = 'mbLeft' then FindObject('Model_Counter').Set('Position', Get('Y') div ImgH * 6 + Get('X') div ImgW) // это тот счётчик, которых заведует переобуванием end;
Наглядно получилось, удобно. Но вот, опять же... Я долго не мог понять, как выбрать кассету. Оказалось, что заголовок окна кликабельный, чего в окнах не бывает. Уж надо было сделать две отдельных кнопки, чтоб заморочек таких не было, или уж всё в одном окне: и модели и кассеты.
Так у тебя каждая миниатюра это отдельных компонент? Не жалко ресурсов? И какой же это гемор всё располагать в окне, да ещё куча биндинга!Я ж предлагал простейший способ - все миниатюры собрать в одну картинку...
...и выбирать по координатам мыши. Скрипт всего в одну строчку:Code: [Select]procedure Execute(Sender, Arguments: TComponent);const ImgW = 92; // размеры ImgH = 64; // миниатюрыbegin with Arguments do if Get('Button') = 'mbLeft' then FindObject('Model_Counter').Set('Position', Get('Y') div ImgH * 6 + Get('X') div ImgW) // это тот счётчик, которых заведует переобуванием end;Пример в аттаче. Может, не точно вырез картинку со скрина, но это на результат практически не влияет.За титанический труд +1.
А как быть с КОНСТРУКТОР'ом? Для клавиш, ручек, индикаторов и кассет - каждому свою панель?
От конструктора я бы отказался. Зачем глумиться над аппаратом? Люди худо-бедно работали над дизайном, и мешать всё в кучу, несовместимые вещи, не стОит.
Если выбор кассет будет на второй странице, то, ес-но, будет нужна ещё панель, но скрипт будет такой же, только вписать новые размеры (точнее, шаг) миниатюр.P.S.Да, ещё множитель может измениться (та 6-ка) - по числу элементов в ряду. Надо было вынести в константы, чтоб понятнее было.
... но мне не удалось заставить панель в твоём примере масштабироваться...
Получается, ты заблокировал масштабирование этого окна. Зачем?
Я ж предлагал простейший способ - все миниатюры собрать в одну картинку и выбирать по координатам мыши. Скрипт всего в одну строчку:Read more...Code: [Select]procedure Execute(Sender, Arguments: TComponent);const ImgW = 92; // размеры ImgH = 64; // миниатюрыbegin with Arguments do if Get('Button') = 'mbLeft' then FindObject('Model_Counter').Set('Position', Get('Y') div ImgH * 6 + Get('X') div ImgW) // это тот счётчик, которых заведует переобуванием end;
После закрытия плеера и повторного включения все текстуры возвращаются к дефолтным. С этим можно что-то сделать?
Сохранять в ини-файле. В onLoaded восстанавливать в то состояние, что было при закрытии плеера.
Вернул скрипты, а из хэндлеров лишь меняю состояние счётчиков, связанных со скриптами.
А про Ini-файл можно подробнее? Я с этим ещё не сталкивался.
Добавил в тот же пример запись и чтение из конфига, чисто для демонстрации, потому как, если номер одёжки будет храниться в счётчике, всё это смысла не имеет.Почитай справку, конечно, ещё, в инишнике можно хранить много чего: и строки и числа, глобальные переменные.
Ну а пока v2.20
По ссылке пусто...
На Яндекс.Диске какие-то проблемы, ссылка при обновлении файла не сохраняется
Бывает у них...Владимир, убери, пожалуйста, цитату из этого сообщения - там ссылки тоже могут быть некорректными.