AIMP Forum

Разное => Архив / Archive => SkinEditor, SkinEngine (archive) => Topic started by: Zhenya on February 26, 2013, 14:22:50

Title: [реализовано] Доступный сервис State у контейнеров и текстур
Post by: Zhenya on February 26, 2013, 14:22:50
Предлагаю сделать доступным сервис State у контейнеров и текстур.
(http://funkyimg.com/u2/3134/981/919111Untitled.png)

Нужно для того, чтобы связывать действие кнопки и состояние контейнера/текстуры.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zero on February 26, 2013, 14:30:49
Не совсем понял необходимость такого решения.
Приведите пример возникновения необходимости в подобном решении.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Soolo on February 26, 2013, 14:31:07
за
Пригодилось бы, к примеру, для подмены элементов в зависимости от фона

Не совсем понял необходимость такого решения.
Приведите пример возникновения необходимости в подобном решении.
можно нажатием кнопки переводить режим скина из прямоугольного в круглый или с закругленными краями

Да, это можно сделать с помощью многостраничной группы. Но мне так думается, что лишние контейнеры негативно сказываются на производительности и "тяжести" скина.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zero on February 26, 2013, 14:33:15
за
Пригодилось бы, к примеру, для подмены элементов в зависимости от фона
О, в таком случае я за.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on February 26, 2013, 14:35:35
Приведите пример возникновения необходимости в подобном решении.
https://www.aimp.ru/forum/index.php?topic=25167.msg235059#msg235059
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zero on February 26, 2013, 15:18:57
https://www.aimp.ru/forum/index.php?topic=25167.msg235059#msg235059
Теперь все стало на свои места. Иногда и у самого возникала необходимость в подобном, но ни о чем не задумываясь нагружал скин многоуровневостью и размер скина увеличивался, хотя элементов на самом деле должно было быть не много.
А так если просто менять рисунок фона то скин станет легче.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Hayo Tee on February 26, 2013, 16:22:34
Нейтрал. Не нужная вещь...
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on February 28, 2013, 18:19:31
я не понял, в чем именно заключается вопрос? Что должен будет показывать этот сервис? на что влиять?

за
Пригодилось бы, к примеру, для подмены элементов в зависимости от фона
можно нажатием кнопки переводить режим скина из прямоугольного в круглый или с закругленными краями

Да, это можно сделать с помощью многостраничной группы. Но мне так думается, что лишние контейнеры негативно сказываются на производительности и "тяжести" скина.

Лучше так не делать, имхо. Это отрицательно скажется на производительности
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Soolo on February 28, 2013, 19:59:30
Quote
Не хватает сервиса State для провайдера контейнер/текстура

State контейнера или текстуры мы можем изменить
А вот считать этот параметр не получается

Пригодилось бы, к примеру, для подмены элементов в зависимости от фона
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on February 28, 2013, 20:21:18
я не понял, в чем именно заключается вопрос? Что должен будет показывать этот сервис? на что влиять?
Смена фона в контейнере при нажатии на кнопку.

Сейчас напрямую связать кнопку и контейнер через State нельзя, только окольными путями:
Тогда можно сделать многостраничную группу в качестве фона, и тогда ею можно управлять чем угодно.

Или же управлять состоянием контейнера через посредника: кнопкой можно скрывать некий пустой контейнер например, а уже от этого контейнера управлять текстурой контейнера. Надеюсь еще больше не запутал )
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on March 01, 2013, 11:20:35
Смена фона в контейнере при нажатии на кнопку.

Кто-то запретил пользоваться TextureDrawingIndex? State - это состояние, оно характерно только для элементов управления.

Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on March 01, 2013, 11:31:31
Кто-то запретил пользоваться TextureDrawingIndex?
То есть делать 2 слоя текстур в контейнере и скрывать верхний при необходимости? Но ведь кнопку и текстуру нельзя связать.

State - это состояние, оно характерно только для элементов управления.
Но ведь данная точка подключения есть у контейнера. И работает. А как сервис недоступна.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on March 01, 2013, 13:31:36
То есть делать 2 слоя текстур в контейнере и скрывать верхний при необходимости? Но ведь кнопку и текстуру нельзя связать.
Но ведь данная точка подключения есть у контейнера. И работает. А как сервис недоступна.

Прошу прощения, под руками не было редактора. Вы правы, сервис называется State, а не TextureDrawingIndex.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on March 08, 2013, 04:22:54
Отказано?
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Tarik on March 08, 2013, 20:05:19
Отказано?
Кто сказал?
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on March 08, 2013, 22:32:24
Кто сказал?
=)
Вот именно, что конкретных ответов до сих пор нет, beta 2 вышла, но в ней не реализовано данное простое предложение, хотя "спорное", на мой взгляд, другое предложение (https://www.aimp.ru/forum/index.php?topic=39190.0) реализовано. Такие мысли.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Алексей Долматов on March 09, 2013, 07:26:46
Ждать и правила читать
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on April 10, 2013, 23:47:48
Судя по изменениям дело близится к релизу, а конкретного ответа нет.
Почему нельзя добавить возможность напрямую менять State контейнера?

P.S. Правила читал. Не один раз.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 11, 2013, 00:31:44
Судя по изменениям дело близится к релизу, а конкретного ответа нет.
Почему нельзя добавить возможность напрямую менять State контейнера?

К сожалению, я не понимаю смысла данного предложения... что именно вы хотите достичь?
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on April 11, 2013, 00:38:22
К сожалению, я не понимаю смысла данного предложения... что именно вы хотите достичь?
Нажатием кнопки менять фон контейнера (переключать кадры текстуры контейнера).
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 11, 2013, 08:41:55
Нажатием кнопки менять фон контейнера (переключать кадры текстуры контейнера).

Сейчас это можно сделать через костыль. Ближе к релизу я планирую ввести еще несколько пользовательских провайдеров, среди них будет счетчик. Вот он позволит такое делать.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on April 11, 2013, 12:01:02
Сейчас это можно сделать через костыль. Ближе к релизу я планирую ввести еще несколько пользовательских провайдеров, среди них будет счетчик. Вот он позволит такое делать.
Счетчик. То есть переключение по таймеру? А если нужно только по нажатию пользователем кнопки?
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 11, 2013, 13:30:03
Счетчик. То есть переключение по таймеру? А если нужно только по нажатию пользователем кнопки?

Нет, счетчик как в электронике, он меняет свой "индекс" по сигналу (действию)
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 19, 2013, 23:02:49
Пробуйте
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on April 20, 2013, 13:49:25
Пробуйте
Попробовал, работает.

Счетчик хорош для переключения видимости разных элементов (как в примере в справке), но для переключения кадров текстуры контейнера счетчик выглядит как костыль, ей-богу.
Проще и правильней ведь прямое управление вида "Action кнопки - State контейнера". И не надо будет при смене количества кадров в текстуре контейнера попутно менять еще и количество значений счетчика.

Еще не совсем понятен смысл прописывания ScrollDelta.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Soolo on April 20, 2013, 14:16:15
Проще и правильней ведь прямое управление вида "Action кнопки - State контейнера". И не надо будет при смене количества кадров в текстуре контейнера попутно менять еще и количество значений счетчика.
это проще, но не правильнее
в твоем случае одной кнопкой можно будет управлять одной текстурой
А с помощью счетчика одной кнопкой можно управлять и несколькими текстурами и одновременно несколькими активными элементами

Еще не совсем понятен смысл прописывания ScrollDelta.
Что непонятного? Это параметр шага по умолчанию. Не хотите писать ScrollDelta, напишите 1, или 2, или  другое число
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 20, 2013, 15:47:09
Попробовал, работает.

Счетчик хорош для переключения видимости разных элементов (как в примере в справке), но для переключения кадров текстуры контейнера счетчик выглядит как костыль, ей-богу.
Проще и правильней ведь прямое управление вида "Action кнопки - State контейнера". И не надо будет при смене количества кадров в текстуре контейнера попутно менять еще и количество значений счетчика.

Еще не совсем понятен смысл прописывания ScrollDelta.

Имхо, костылем как раз будет переключение кадров по клику. Поясню. Сейчас State - это просто номер кадра, для реализации вашей задумки, эта точка должна еще реализовывать сервис Action. Странно видеть экшн у точки доступа с названием State.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on April 20, 2013, 16:42:08
Имхо, костылем как раз будет переключение кадров по клику. Поясню. Сейчас State - это просто номер кадра, для реализации вашей задумки, эта точка должна еще реализовывать сервис Action. Странно видеть экшн у точки доступа с названием State.
Теперь мне более-менее понятно.

Что непонятного? Это параметр шага по умолчанию. Не хотите писать ScrollDelta, напишите 1, или 2, или  другое число
Я думал, что LogicalOperatorCounter сам увеличивает значение на единицу при взаимодействии с ним, а оказывается он только хранит это значение. И увеличение нужно прописывать вручную при биндинге. Это теперь понятно.

Только вот что непонятно. ScrollDelta - это шаг, который задается в настройках плеера. Но зачем это нужно счетчику?
Ведь если шаг можно поменять в настройках, то и переключение со ScrollDelta будет перескакивать некоторые значения, а если нельзя поменять, то смысл использования ScrollDelta конкретно в счетчике и прописывания в примере в справке (что запутывает)?
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Artem on April 20, 2013, 16:44:31
Только вот что непонятно. ScrollDelta - это шаг, который задается в настройках плеера. Но зачем это нужно счетчику?
Ведь если шаг можно поменять в настройках, то и переключение со ScrollDelta будет перескакивать некоторые значения, а если нельзя поменять, то смысл использования ScrollDelta конкретно в счетчике и прописывания в примере в справке (что запутывает)?

ScrollDelta своя для каждого из провайдеров, для провайдеров TrackPosition и Volume это значение, как вы правильно заметили, задается в настройках программы. Для остальных - оно зашито внутрь - пользователь не может их менять, во всяком случае пока.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Soolo on April 20, 2013, 17:42:39
Я думал, что LogicalOperatorCounter сам увеличивает значение на единицу при взаимодействии с ним, а оказывается он только хранит это значение. И увеличение нужно прописывать вручную при биндинге. Это теперь понятно.

Только вот что непонятно. ScrollDelta - это шаг, который задается в настройках плеера. Но зачем это нужно счетчику?
Ведь если шаг можно поменять в настройках, то и переключение со ScrollDelta будет перескакивать некоторые значения, а если нельзя поменять, то смысл использования ScrollDelta  конкретно в счетчике и прописывания в примере в справке (что запутывает)?
Я тоже сначала думал, что LogicalOperatorCounter сам будет увеличивать своё значение. Но текущая реализация со ScrollDelta более гибкая, позволяет сделать дополнительные фишки.
Title: Re: Доступный сервис State у контейнеров и текстур
Post by: Zhenya on October 15, 2013, 00:22:12
Нужно для того, чтобы связывать действие кнопки и состояние контейнера/текстуры.
Суть предложения реализована. Тему, наверно, нужно в архив.