Отключить кэш в Google Chrome (Mac) для разработки во Flex / Flash - PullRequest
4 голосов
/ 31 марта 2011

Как лучше всего отключить кэш в Google Chrome для Mac, чтобы при разработке флэш-приложения оно каждый раз приносило новый фильм?

Пожалуйста, сообщите, я не могу понять, как обеспечить, чтобы версия .swf, на которую я смотрю, была самой последней версией.

Возможно, одним из решений было бы заставить компилятор flex добавлять метку времени к именам файлов .swf, это возможно?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 01 мая 2012

Перейдите в меню «Вид», откройте Инструменты разработчика. В правом нижнем углу инструментов разработчика находится значок шестеренки. Нажмите его, затем установите флажок «Отключить кэш».

4 голосов
/ 31 марта 2011

В вашем коде для встраивания, где бы вы ни находились в SWF-файле, вы должны поместить в запрос случайное число или временную метку.Всякий раз, когда есть строка запроса, которая изменяет браузер, она не будет кэшировать страницу.

"MySWFName.swf?t=" + new Date().getTime();

Наилучшим способом будет внедрение вашего SWF-файла с использованием SWFObject с этим кодом.

В теге html body сделайте это.

<body onLoad="loaded()" onunload"doUnload( )">
  <div id="replaceMe">Loading content.</div>
</body>

и для javascript сделайте это (очевидно, изменив материал, завернутый в {} для ваших нужд

<script type="text/javascript" src="swfobject.js">
<script type="text/javascript">
  function loaded() {
    var flashvars={}, params={}, attributes={}, tmp, version, width, height, container, flashObj;
    flashvars.userName    = "testvar";

    params.menu = "true";
    params.quality = "high";
    params.bgcolor = "${bgcolor}";
    params.allowscriptaccess = "always";
    params.allownetworking = "all";

    attributes.id = "${application}";
    attributes.name = "${application}";
    attributes.align = "middle";
    attributes.allowscriptaccess = "always";
    attributes.allownetworking = "all";

    tmp = "expressInstall.swf";
    version = "${version_major}.${version_minor}.${version_revision}";
    width = "${width}";
    height = "${height}";
    container = "replaceMe";
    flashObj = "${swf}.swf?t=" + new Date().getTime();
    swfobject.embedSWF(flashObj, container, width, height, version, tmp, flashvars, params, attributes);
  }
</script>

Не забудьте добавить копию SWFobjectУ вас никогда не будет проблем с кэшированиемРЕДАКТИРОВАТЬ: Кстати, если вы замените свой код в файле html.template.html на этот код, он сгенерирует значения для вас.:)

0 голосов
/ 01 апреля 2011

Лично я бы никогда этого не сделал.Кэширование существует по причине и не должно быть отключено, когда вы запускаете его локально.По моему опыту, лучший способ сделать это - иметь приращение числа 'version' (обычно статически правильно в классе) каждый раз, когда вы строите (используя Ant или Maven; еще лучше, если у вас есть механизм автоматизации, чтобы делать это тоже) который затем прикрепил этот номер версии в качестве параметра url для флэш-фильма, например Movie.swf?version=1.31 в html.

...