0 Members and 1 Guest are viewing this topic.
Пожалуйста =) Мне это не так сложно, мне просто интересно пробовать реализовывать разные штуки на скин-движке.
...А вообще, не понял проблемы...
Лично я бы так не делал — предусмотреть этот случай не так сложно ведь. И не только из-за радио можно столкнуться с этим, могут быть и треки с очень длинным названием (всякое бывает, даже не обязательно это может быть музыка).
А вот тут, как показала практика, в моём случае печаль-беда приключилась...Способ с дополнительными контейнерами по 10 пикселей в ширину идеален, если фоновая текстура QFI однородная. В моём же случае она двупиксельная, в том смысле, что имеем не один пиксель для замостки фона расширяющегося контейнера и даже не вертикальную полоску шириной в 1 пиксель - у меня она в виде вертикальной полоски шириной в 2 пикселя. Как бы два столбика пикселей - первый в сплошном цвете, а второй, его сменяет и уже идёт шахматкой:
Можно-ли насильно настроить замостку в Margins таким образом, чтобы контейнер всегда, не зависимо от условий расширения TextDisplayEx (на парное количество пикселей или непарное), расширялся бы исключительно на парное количество пикселей?
Просто создайте в том контейнере с текстурой три дочерних прозрачных (без текстуры и без фонового цвета) контейнера. Даже можно не три контейнера, а две текстуры (элемент TASELayoutTexture) по бокам и контейнер по середине. Текстуры потому, что там ведь не нужно размещать элементы, то есть контейнеры в этом случае избыточны. В контейнер посередине переместите метки. И не забудьте поправить скрипт — имя контейнера в последних двух строчках.
Можно-ли как-то убрать зависимость отображения визуализаций в разных TASEVisualDisplay, в одной и той же обложке так, чтобы полностью исключить их влияние друг на друга?
1. Собственно возвращения ползунка TASESliderHorizontal при нажатии на "Стоп", как видно из базовой версии обложки 1.0, я добился через Visibility элемента к State prvPlayerState - суть в том, что при "Стоп", TASESliderHorizontal перестаёт быть видимым (под элементом на материнской фоновой текстуре просто ползунок слайдера банально нарисован и не перекрываемый элементом слайдера становится видимым). Задача сейчас в том, чтобы сделать TASESliderHorizontal также невидимым и при проигрывании радиостанций. Пока не знаю как это сделать...
2. Также я всегда очень хотел, чтобы при нажатии на "Стоп" трековые циферблаты и подсветка бегущей строки - гасли. Посредством связки TASEBlurredGlass (как элемнт просто несущий в себе перекрывающую крышку-текстуру) и того же prvPlayerState я добился нужного результата. Интересно можно-ли связку Visibility-State замедлить во времени? В том смысле, чтобы исчезание TASEBlurredGlass не было мгновенным, происходило постепенное исчезание на протяжении, например, 1-1,5 секунды? Чтобы всё это реально походило на настоящее затухание/включение...
3. Поскольку добился гашения основных светящихся элементов дисплея - хотелось бы то же самое проделать и с элементом TASEWaveFormDisplay. При нажатии на "Стоп" визуализация элемента продолжает медленно уходить (на картинке ниже). Пробую сделать его невидимым при нажатии на "Стоп" при помощи того же prvPlayerState, но там не всё так просто, как оказалось. Есть такое подозрение, что вовсе не там "копаю":
Теоретически конечно можно заморочиться с таким костылём — берём два дисплея и попеременно меняем их видимость, то есть нажимаем Стоп и дисплей заменяется вторым. Следующий раз нажмём Стоп — дисплей поменяется обратно на первый. Но тут нужно будет менять не только видимость дисплеев, но и их связи удалять и восстанавливать, чтобы при нажатии Стоп дисплей менялся на "свежий", без волны на нём.Минус всё равно есть — если достаточно быстро использовать Стоп два раза, то кусок волны всё равно будет виден.
prvPlayingFileInfo.SourceСправка — 2. Структура скина / Взаимодействия между элементами / Список точек подключений и сервисов провайдеров / Провайдеры / prvPlayingFileInfo
Вместо мутного стекла лучше использовать панель. Вы же не используете размытие?
Кстати, зачем накрывать "крышкой" если можно просто скрывать сам элемент?
https://www.aimp.ru/forum/index.php?topic=27831.msg373346#msg373346https://www.aimp.ru/forum/index.php?topic=27831.msg373353#msg373353
Насколько я знаю, буфер для дисплеев визуализации один, и если они разных размеров, то будет искажение. То есть можно использовать несколько дисплеев без искажений если только все дисплеи одинакового размера.
Пришлось с лупой искать о чём вы говорите. Нет, никак. Только если удалить дисплей визуализации в отдельном окне, то есть оставить только один дисплей в главном окне. Или удалить целиком то окно.
Но может как некий урок по скриптам пойдёт =)
Вот вы графоманите, конечно =) Страшно подойти к такому топику.
Ффффух, я уж было испугался, что Вы меня бросили
Как сделать так, чтобы TASESliderHorizontal был видимым только при проигрывании композиции, но становился невидимым и при нажатии на "Стоп", и когда играет радио?
А было бы здорово, чтобы "крышка" появлялась и исчезала как в примере тех скриптов хотя бы на протяжении 0,5 секунды имитируя "затухание" и "включение" ламп и подсветки
Value = 1 OR Value = 2
Можно-ли как-то посадить элемент панель/мутное стекло на скрипт, замедляющий его Visibility-State?
Я бы с удовольствием выбросил это "Окно визуализаций" из сборки, тем более, что моим скином оно не предусмотрено "идеологически", попросту не нужно оно там, ну и кнопки его вызова я потому не рисовал, НО - без этого окна скин обложки не будет считаться полным, потому некуда деваться
В OnLoaded вручную проверяется prvPlayerState.State (через виртуальный набор связей)