menu

Blog

  • Дружим AIR autoupdate и Flex 4

    С подачи уважаемого injun-а, ознакомился с методикой обновления AIR приложений с помощью Adobe AIR Update Framework. Необходимые библиотеки встроены в AIR 1.5 и использование действительно несложно, не буду копипастить. Одна беда: приложение на Flex 4 упорно отказывалось обновлятся, высмаркивая ошибку "Error #1007: Instantiation attempted on a non-constructor.

    Возможно, у этой проблемы есть решение, но я не нашел его и сделал workaround. Весь небольшой код, который отвечает за апдейт, был вынесен в отдельную swf-ку и скомпилирован с помощью Flex 3 SDK. Чтобы подключить эту swf-ку, в код приложения на Flex 4 надо вставить вызов:

    <mx:SWFLoader id="updater"
                      visible="false"
                      height="0"
                      width="0"
                      source="updater.swf"
                      loadForCompatibility="true" />

    Последний аттрибут позволяет использовать swf-ку созданную Flex 3 SDK внутри приложения Flex 4 и при этом не смешивать контексты. Это возможно благодаря штуке под названием Marshall Plan - с ее помощью можно подгружать не только swf-ки разных версий, но и разного происхождения (загруженные из сети и локальные).

    Минимальный набор для реализации auto-update - исходник swf-ки и пример дескриптора апдейта.