2009-10-08
Когда давно я писала о вариантах передачи версии в приложение. Там упоминалось возможное использования для этого сonditional compilation, но тогда еще Flex 3 не вышел. Сейчас уже давным давно вышел Flex 3 и даже 4 не за горами. Сейчас расскажу про то, как легко и непринужденно передать версию вашего приложения при компиляции, а потом и запросто использовать ее в приложении. Передать константы в приложение можно, используя опцию компилятора compiler.define. Константы могут быть типов Boolean, String, Number или выражения, которые могут быть преобразованы в ActionScript в процессе компиляции. Далее эти константы доступны в приложении как глобальные. Используя опцию define, необходимо для константы определить: namespace, имя и значение:
Пример:
Доступ из приложения доступен пока только из as-классов. В скором будущем, возможно будет работать и доступ из mxml-классов. Говорят, что в mxml-классах можно использовать только Boolean. Но зачем нам? Мы же код в mxml не пишем.
Подробнее про использование conditional compilation в доках. Теги: flex, компиляция
Трекбек адрес этой записиURL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку) 12 комментариев
Комментарий от: yzh44yzh [Посетитель]
Тема не раскрыта А где взять эту версию, чтобы ее передать? К примеру, как туда передать номер текущей правки svn? Я для этого использую svn info, bash и sed. Другие Antом как-то справляются.
2009-10-08 @ 12:36
Комментарий от: prof [Посетитель]
Для тех, кто все же пишет код в MXML (или не пишет, но хочет в MXML использовать константы компиляции), есть хорошая новость.Эти константы доступны в блоке mx:Script
2009-10-08 @ 12:39
Комментарий от: yzh44yzh [Посетитель]
Ну я не совсем прав. Если пройти по всем ссылкам из поста, то тема таки раскроется. Но было бы более правильно дать сразу одним постом полное и готовое к использованию решение
2009-10-08 @ 12:43
Оставляю тупой коммент: почему discription, а не description?
2009-10-08 @ 12:47
![]() А где взять эту версию, чтобы ее передать? К примеру, как туда передать номер текущей правки svn? Как ее туда передавать, это уже тебе решать. Ant вполне можно использовать. Тут имеется в виду версия для показа пользователю. Не будешь же ты версию в svn показывать. =)
2009-10-08 @ 13:14
![]() Для тех, кто все же пишет код в MXML (или не пишет, но хочет в MXML использовать константы компиляции), есть хорошая новость. Я не проверяла, но отлично тогда. =)
2009-10-08 @ 13:16
![]() Оставляю тупой коммент: почему discription, а не description? Спасибо. =)
2009-10-08 @ 13:17
![]() Но было бы более правильно дать сразу одним постом полное и готовое к использованию решение Возможно. Но такой пост писать намного дольше. Есть опасность его так и не собраться дописать.
2009-10-08 @ 13:23
<mx:String i d="entries" source="../.svn/entries" />var array:Array = entries.split("\r\n"); if (array.length == 1) array = entries.split("\n"); if (array.length == 1) array = entries.split("\r"); var revision:String = int(array[3]); P.S: *, не то что код вставить нельзя - даже id равно "..." написать нельзя! Пришлось пробел ставить между i и d
2009-10-08 @ 13:51
![]() var revision:String = int(array[3]); Интересный способ. =) А формат entries у всех клиентов одинаковый?
2009-10-08 @ 14:15
![]() Как ее туда передавать, это уже тебе решать. Ant вполне можно использовать. Ага. Я так и делал - Антом переписывал переменну version прямо в файле Version.as Но эта статья неплохо демонстрирует определение переменных компиляции и передачу их в приложение. К чему бы это еще применить?
2009-10-08 @ 14:44
![]() Ага. Я так и делал - Антом переписывал переменну version прямо в файле Version.as Приблизительно так мы тоже делали. К чему бы это еще применить? Может можно компилировать две версии приложения из одного application mxml?
2009-10-08 @ 15:55
Оставить комментарий |