Как остановить загрузку файла Flash (.swf) (ActionScript 3) - PullRequest
0 голосов
/ 26 апреля 2009

Предположим, у меня большой файл .swf. Скажем, это 10 МБ. Я не хочу, чтобы браузер загружал весь файл, пока пользователь не нажмет кнопку в кадре 1.

Я не хочу использовать внешние файлы. Я просто хочу, чтобы Flash Player сначала загрузил 10 КБ, отобразил кадр 1, а затем остановился, пока пользователь не нажмет кнопку.

Возможно ли это вообще?

Ответы [ 4 ]

3 голосов
/ 26 апреля 2009

Насколько мне известно, нет способа остановить загрузку Flash Player в определенных точках файла swf.

Есть ли какая-то особая причина, по которой вы хотели бы избегать использования внешних файлов? Потому что для этого я бы предложил небольшой SWF preloader 10KB. Когда пользователь нажимает кнопку, он загружает ваш основной SWF-файл размером 10 МБ с помощью flash.net.URLLoader.

2 голосов
/ 27 апреля 2009

Это невозможно без использования внешних файлов. Чтобы сделать это с помощью внешних файлов, просто сделайте то, что сказал Shrill

Но лучший вопрос - почему? Если первый кадр равен 10 КБ, то первый кадр будет готов к воспроизведению, поскольку файл загружен на 10 КБ.

Вы можете просто подождать, пока загрузится первый кадр, и воспроизвести его (остальные будут просто незаметно загружаться в фоновом режиме), а затем, когда пользователь нажмет кнопку, он сделает одну из двух вещей: если все остальное уже Выполните к тому времени, затем продолжите, если нет, то следите за остальной частью процесса загрузки, пока он не будет, затем продолжайте :)

SWF-файлы - это формат, который можно преобразовать, в этом нет ничего плохого!

1 голос
/ 27 апреля 2009

Flash Player рассматривает SWF-файлы как потоковый формат. Это означает, что в тот момент, когда Flash Player загрузил содержимое кадра # 1, он будет обрабатывать этот кадр, отображая содержимое этого кадра и выполняя код в этом кадре. Тем временем Flash Player начнет загружать кадр № 2.

Если вы ставите остановку (); команда на кадре # 1, тогда воспроизведение остановится, но Flash Player продолжит загрузку остальных кадров. Таким образом, вы можете сделать предварительный загрузчик. Вы останавливаете воспроизведение на первом кадре, создаете onEnterFrame, который будет отслеживать, сколько SWF-файла было загружено, и после того, как это будет 100%, продолжить воспроизведение.

Короткий ответ на ваш вопрос: нет, вы не можете помешать Flash Player загружать следующие кадры, вам нужно использовать внешний SWF-файл для ваших целей.

0 голосов
/ 26 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...