Когда давно я писала о вариантах передачи версии в приложение. Там упоминалось возможное использования для этого сonditional compilation, но тогда еще Flex 3 не вышел.

Сейчас уже давным давно вышел Flex 3 и даже 4 не за горами.

Сейчас расскажу про то, как легко и непринужденно передать версию вашего приложения при компиляции, а потом и запросто использовать ее в приложении.

Передать константы в приложение можно, используя опцию компилятора compiler.define. Константы могут быть типов Boolean, String, Number или выражения, которые могут быть преобразованы в ActionScript в процессе компиляции. Далее эти константы доступны в приложении как глобальные.

Используя опцию define, необходимо для константы определить: namespace, имя и значение:

-define=namespace::variable_name,value

Пример:

-define=VERSION::description,'3.15.6'

Доступ из приложения доступен пока только из as-классов. В скором будущем, возможно будет работать и доступ из mxml-классов. Говорят, что в mxml-классах можно использовать только Boolean. Но зачем нам? Мы же код в mxml не пишем. ;)
Пример доступа:

public static const VERSION_DESCR:String = VERSION::description;

Подробнее про использование conditional compilation в доках.

Трекбек адрес этой записи

URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)

12 комментариев

Комментарий от: yzh44yzh [Посетитель]
Тема не раскрыта :)

А где взять эту версию, чтобы ее передать? К примеру, как туда передать номер текущей правки svn?

Я для этого использую svn info, bash и sed. Другие Antом как-то справляются.
2009-10-08 @ 12:36
Комментарий от: prof [Посетитель] Email
Для тех, кто все же пишет код в MXML (или не пишет, но хочет в MXML использовать константы компиляции), есть хорошая новость.
Эти константы доступны в блоке mx:Script
2009-10-08 @ 12:39
Комментарий от: yzh44yzh [Посетитель]
Ну я не совсем прав. Если пройти по всем ссылкам из поста, то тема таки раскроется.

Но было бы более правильно дать сразу одним постом полное и готовое к использованию решение :)
2009-10-08 @ 12:43
Комментарий от: Konstantin Kovalev [Учаснег] Email · http://riapriority.com/blogs/constantiner.php
Оставляю тупой коммент: почему discription, а не description? :)
2009-10-08 @ 12:47
А где взять эту версию, чтобы ее передать? К примеру, как туда передать номер текущей правки svn?

Я для этого использую svn info, bash и sed. Другие Antом как-то справляются.

Как ее туда передавать, это уже тебе решать. Ant вполне можно использовать.
Тут имеется в виду версия для показа пользователю. Не будешь же ты версию в svn показывать. =)
2009-10-08 @ 13:14
Для тех, кто все же пишет код в MXML (или не пишет, но хочет в MXML использовать константы компиляции), есть хорошая новость.
Эти константы доступны в блоке mx:Script

Я не проверяла, но отлично тогда. =)
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 :no:
2009-10-08 @ 13:51
var revision:String = int(array[3]);

Интересный способ. =)
А формат entries у всех клиентов одинаковый?
2009-10-08 @ 14:15
Комментарий от: rost [Учаснег] Email · http://flash-ripper.com/
Как ее туда передавать, это уже тебе решать. Ant вполне можно использовать.


Ага. Я так и делал - Антом переписывал переменну version прямо в файле Version.as :)

Но эта статья неплохо демонстрирует определение переменных компиляции и передачу их в приложение.

К чему бы это еще применить?
2009-10-08 @ 14:44
Ага. Я так и делал - Антом переписывал переменну version прямо в файле Version.as :)

Приблизительно так мы тоже делали. :)
К чему бы это еще применить?

Может можно компилировать две версии приложения из одного application mxml?
2009-10-08 @ 15:55

Оставить комментарий


Ваш email адрес. (Не будет показан на сайте.)

Ваш URL будет показан.
:!: :?: :idea: :) :D :p B) ;) :> :roll: :oops: :| :-/ :( :'( |-| :>> :yes: ;D :P :)) 88| :. :no: XX( :lalala: :crazy: >:XX
(Заменить прерывания строк на <br />)
(Имя, email и сайт)
(Разрешить пользователям посылать вам сообщения (ваш email не отображается).)
3 + 2 + 7 - 1?
antispam test

Вы можете использовать OpenID чтобы предоставить ваше имя, email и url.