Flex: выяснить, когда был скомпилирован работающий swf?

Есть ли в гибком приложении способ выяснить (во время выполнения), когда был скомпилирован работающий swf?

Я хотел бы сравнить это с последней версией файла swf на сервере и определить, есть ли на сервере более новая версия, и, если да, заставить пользователя перезагрузить свой браузер, чтобы получить новую версию.

Мне это нужно, чтобы также работать с swfs из кеша.


person Niels Bosma    schedule 10.12.2008    source источник


Ответы (1)


Что я обычно делаю, чтобы убедиться, что пользователь получает последнюю версию Flash-файла (потому что есть что-то странное с кешированием Flash-содержимого), я использую серверный скрипт для добавления времени, когда файл был изменен.

Я также экспериментировал с установкой переменных в swf, хотя это требует некоторых уловок в командной строке и не будет практичным, если вы не используете скрипт сборки.

Обычно вы добавляете это к своему вызову mxmlc:

-define+=BUILD::DATE,"2008-12-10"

Тогда переменная BUILD :: DATE будет доступна во время вашей сборки, поэтому вы можете использовать ее для установки статической переменной, которую вы позже прочитаете:

private static var COMPILEDATE:String = DATE;

(Я написал все это по памяти, поэтому синтаксически это может быть не на 100%)

person grapefrukt    schedule 11.12.2008
comment
но нужно ли по-прежнему обновлять значение DATE вручную? Можно ли настроить Flash IDE или Eclipse на автоматическое обновление? - person Andy Li; 22.10.2009
comment
к сожалению, нет, вам придется сделать это самостоятельно. - person grapefrukt; 23.10.2009