MovieClipLoader не работает (имеет отношение к кешу) - PullRequest
0 голосов
/ 19 января 2009

У меня есть небольшой флэш-файл, который просто загружается и показывает одно изображение, масштабированное для размещения внутри области содержимого. Мы используем их с галереей javascript, поэтому у нас есть несколько экземпляров на одной html-странице (встроенной в swfObject). Я использовал MovieClipLoader для загрузки jpgs, но это больше не работает.

Мы обновили сервер, и, насколько я знаю, изменилась только соответствующая вещь, связанная с кэшем. Ранее все изображения и файлы SWF всегда перезагружались. Теперь они должны быть загружены из кеша.

Я вижу из firebug, что SWF на самом деле загружает JPG, он просто ничего не отображает. Это происходит во многих комбинациях плагинов браузера / ОС / Flash. Иногда некоторые изображения показывают, иногда нет.

Код внутри обработчиков событий moviecliploader (onloadinit, onloaderror) никогда не запускается.

Буду признателен за любые идеи о том, как заставить это работать.

Ответы [ 3 ]

0 голосов
/ 20 января 2009

Я не могу использовать одну основную вспышку. Нам нужно иметь отдельные флэш-загрузчики для каждого изображения. Насколько я знаю, невозможно создать систему очередей, которая будет обрабатывать от 1 до N флэш-загрузчиков.

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

0 голосов
/ 20 января 2009

Я нашел решение.

Оказывается, проблема связана с кешем, но никак не связана с MovieClipLoader.

Я масштабировал загруженное изображение на основе Stage.width и Stage.height. Я обнаружил, что вспышка иногда дает ширину и высоту 0 в течение короткого периода времени. Это может произойти, даже если на сцене видны вещи. ранее это не было проблемой, так как размеры были правильными после загрузки изображения. Теперь, когда изображения поступают из кэша, размеры иногда равны 0.

решение состояло в том, чтобы проверить размеры рабочей области в обработчике onEnterFrame и продолжить загрузку только в том случае, если размеры> 0

0 голосов
/ 20 января 2009

В прошлом у меня были проблемы при использовании нескольких экземпляров MovieClipLoader. Как и у вас, некоторые загрузчики, казалось, перестали работать, никогда не отображая изображение, которое они должны были загрузить. Мне сказали, что это из-за ограничений одновременных потоков HTTP, предположительно, двух скачиваний за раз (но я так и не получил подтверждения).

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

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

...