0
Planned

Почему не работают модули после импорта в v3 на примере XBMC

Максим 4 years ago in Applications / Studio (Server editor) updated by Ekaterina (head of support) 4 years ago 1

Баг обратной совместимости нашел при конвертации старого проекта с модулем XBMC.


В модуле XBMC для v2 есть объект: IR.GetPage("XBMC_Audio").GetItem("icon_map")

типа IR.ITEM_BUTTON у которого более 10 стейтов с картинками и который использовался как массив иконок примерно так:


var icon_map = {

back: GetItem(gui.iconMap).GetState(9).Image,
artist: GetItem(gui.iconMap).GetState(5).Image,
album: GetItem(gui.iconMap).GetState(6).Image,
genre: GetItem(gui.iconMap).GetState(10).Image,
source: GetItem(gui.iconMap).GetState(11).Image

где gui.iconMap = IR.GetPage("XBMC_Audio").GetItem("icon_map")


Начиная с какой-то версии i3pro разработчики сделали лак, что у элемента BUTTON только два стейта. Причем если он один (например когда добавляешь картинку из папки Windows на лист по drag&drop), то создать ему второй стейт невозможно, пока вручную не поменяешь ему тип на TRIGGER_BUTTON или что-то вроде этого).


И при конвертации в i3pro этот элемент потерял все свои "лишние" стейты со всеми картинками и строчки скипта, в которых идет обращение к GetItem(gui.iconMap).GetState(10).Image вызывают прерывание выполнения скрипта.


Более того, это происходит если просто (даже пусть по ошибке) поменять тип элемента на IR.ITEM_BUTTON, то по возвращению к IR.ITEM_MUTI_STATE_BUTTON у которого было до этого много стейтов, останутся только первые 3!!!!


Для меня данные нововведения только еще больше осложнили и без того малоудобную работу с проектами в iStudio.

Planned

Здравствуйте, Максим

если просто (даже пусть по ошибке) поменять тип элемента на IR.ITEM_BUTTON, то по возвращению к IR.ITEM_MUTI_STATE_BUTTON у которого было до этого много стейтов, останутся только первые 3!!!!

- действительно, есть такая ошибка. Сейчас работаем над улучшением инструментов управления элементами в Studio, постараемся предоставить их как можно быстрее. В том числе и эту правку. Спасибо за информацию!

Но, отказ от конвертации из v2 обычных кнопок с сохранением всех состояний был вынужденной мерой, т.к. без него невозможно дальнейшее развитие архитектуры приложения.
К сожалению, это привело к тому, что некоторые проекты (только те, в которых состояниями управляли из скриптов, определенным образом!), перестают работать как раньше, и требуют подготовки для приведения к состоянию v2.
ХВМС постараемся в ближайшее время исправить и перезалить на сайт, чтобы модуль работал после конвертации. Извините за доставленные неудобства!