Почему не работают модули после импорта в v3 на примере XBMC
Баг обратной совместимости нашел при конвертации старого проекта с модулем XBMC.
В модуле XBMC для v2 есть объект: IR.GetPage("XBMC_Audio").GetItem("icon_map")
типа IR.ITEM_BUTTON у которого более 10 стейтов с картинками и который использовался как массив иконок примерно так:
var icon_map = {
где 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.
Сервис поддержки клиентов работает на платформе UserEcho
Здравствуйте, Максим
- действительно, есть такая ошибка. Сейчас работаем над улучшением инструментов управления элементами в Studio, постараемся предоставить их как можно быстрее. В том числе и эту правку. Спасибо за информацию!
Но, отказ от конвертации из v2 обычных кнопок с сохранением всех состояний был вынужденной мерой, т.к. без него невозможно дальнейшее развитие архитектуры приложения.
К сожалению, это привело к тому, что некоторые проекты (только те, в которых состояниями управляли из скриптов, определенным образом!), перестают работать как раньше, и требуют подготовки для приведения к состоянию v2.
ХВМС постараемся в ближайшее время исправить и перезалить на сайт, чтобы модуль работал после конвертации. Извините за доставленные неудобства!