2009-02-10 5 views
1

Я однажды случайно загрузил только часть своей flash-программы на мой сайт (т. Е. Был усечен), и к моему большому удивлению, Flash-объект был успешно загружен на веб-страницу, никаких ошибок не было, нет предупреждения были даны вообще. (Это была версия для версии проигрывателя, версия отладки, возможно, вела себя по-другому, я не знаю.) Конечно, это не сработало правильно, но все же экран предварительного загрузчика был правильно отображен, и появилась загрузка и инициализация чтобы закончить нормально.Обнаружение поврежденного флеш-файла

Мой вопрос: есть ли способ обнаружить (либо в actionscript/flash или на веб-странице встраивания), когда был загружен такой поврежденный Flash-объект? Могу ли я использовать прелоадер для предупреждения, когда это произойдет?

ответ

1

Существует множество способов извлечения информации заголовка из SWF-файла (включая его размер файла). Поскольку эта информация написана во время публикации, она не изменится, если файл был усечен после его загрузки. Так, например, вы можете извлечь эту информацию и проверить, не загружен ли размер файла (в соответствии с заголовком SWF).

+0

Хм, мне интересно, доступна ли эта информация заголовка из ActionScript ... –

+0

Да, это должно быть доступно - проверьте это (довольно исчерпывающий пример): http://www.senocular.com/flash/actionscript.php ? file = ActionScript_3.0/com/senocular/utils/SWFReader.as – euge1979

+0

Спасибо, это прекрасно! –

1

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

+0

Я бы предпочел решение, которое работало на стороне клиента. –

+0

Скрипт, безусловно, может находиться на вашей клиентской машине. Просто напишите программу на любом языке, который принимает два параметра: путь к локальному файлу и URL-адрес удаленного. Затем он делает md5 обоих и выплевывает результаты. Просто запускайте программу каждый раз, когда вы загружаете ее, и все готово. – levand

Смежные вопросы