-
Notifications
You must be signed in to change notification settings - Fork 2
FAQ (ru)
Нужно ли пользоваться вашим редактором Code Orchestra для того чтобы делать проекты с ливкодингом?
Нет, нет никаких ограничений по использованию IDE. Вы можете писать ваш проект в любом текстовом редакторе. Вам нужно лишь указать в COLT настройки компиляции и пути к исходникам (скопировать настройки из вашего IDE). При сохранении as/mxml файлов запускается компиляция и доставка изменений в flash/air приложение.
Как связан ливкодинг в CO2 и COLT
Изначально мы делили ливкодинг для флэш как эксклюзивную возможность нашего редактора Сode Orchestra IDE 2.0 (СO2). Потом мы приняли решение вынести функциональность ливкодинга из редактора. Для любого IDE. Реализация ливкодинга в COLT отличается от CO2 IDE. В COLT нам пришлось модифицировать компилятор, редакторе мы использовали обычную кодогенерацию. Реализация через компилятор позволила нам несколько увеличить скорость инкрементальной фазы.
В какой системе может работать COLT
Windows, MAC, Linux
Как происходит процесс доставки изменений
При сборке приложения происходит специальная трансформация классов. Код и тел методов помещается в специальные классы, которые хранятся в реестре live-методов. А в самих классах вызывается тела метода нет, вызов всех методов переадресутся таким классам. Это позволяет подгружать другую реализацию методов и заменять их код в реестре. При изменении тела методов или добавлении нового метода создается специальны пакет изменений в виде SWF-файла, который помещается в папку livecoding рядом с основной swf-кой. Такой файл содержит один класс с методом, а так же новые классы, которые не были включены в базовое flash-приложение. После окончания сбоки такого пакета (запись на диск файла) во флэш приложение приходит сообщение по сокету с параметрами изменения и приложение загружает swf через URLLoader и загружает классы. Старый класс метод в реестре заменяется на свежий. Всем подписчикам посылается сообщение о изменении реализации класса.
Как запретить ливкодинг в отдельных классах и методах?
В некоторых случаях (возможно мы что-то не предусмотрели и при сборке через COLT вы получите ошибку) необходимо запретить трансформацию методов и классов. Мы предусмотрели для этого несколько приемов. Во-первых, вы можете исключить целые пакеты в настройках COLT. Например, вы можете указать маску пакета «сom.mypackage.*» и исключить его. Во-вторых, вы можете поспользоваться метадатой [LiveCodeDisable] и пометить классы или отдельные методы которые вы хотели бы заблокировать для ливкодинга. В-третьих, вы можете выбрать опцию в настройках ливкодинга «ливкодить только классы с метаданной [Live]) и включать ливкодинг в отдельных классах.
Поддерживается ли Falcon?
COLT использует проверенный MXMLC, который используется в 100 процентах flash проектов в «продакшене». Мы планируем добавить поддержку Falcon в версии 2.0, когда ASC 2.0 будет стабилен и выйдет в релиз. Чтобы воспользоваться новыми возможностями ASC2 вам нужно собирать специальные SWC, скомпилированные ASC2 и добавлять в зависимости компилятора COLT (в случае, если используется domain memory, необходимо подправить SWC). Новые возможности т.о. будут доступны в режиме livecoding.