actionscript flash - загрузка кадров во время игры

Добрый день всем. У меня вопрос по flash... можно ли загрузить первые 2-3 кадра клипа, а пока они проигрываются, загрузить остальные?

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

И если да... как?

Спасибо за помощь.


person zozo    schedule 12.02.2011    source источник


Ответы (2)


Ответ №1: Да.

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

Ответ № 2: Если вы хотите изменить порядок загрузки того же SWF, который вы зацикливаете во время загрузки, ответ — нет. Конечно, вы можете изменить порядок загрузки других SWF-файлов, загружаемых в первый фильм.

person weltraumpirat    schedule 12.02.2011
comment
Приведу пример... Я создаю текстовое поле и сохраняю его в каждом кадре. В каждый кадр я помещаю какой-нибудь случайный фильм (flv). Клип начинается. Пока воспроизводится первый фильм, я хочу загрузить второй, но если пользователь вводит 3 в текстовом поле, я хочу загрузить третий в этот момент, а пока третий воспроизводится, чтобы загрузить второй, четвертый и т. д. - person zozo; 12.02.2011
comment
Используйте только один фрейм и ActionScript для загрузки файлов FLV вместо того, чтобы встраивать их во файл FLV. Это может помочь вам начать работу: stackoverflow.com/questions/1055866/ - person weltraumpirat; 12.02.2011
comment
Я знаю, что отметил как решенный... но последний вопрос. Могу ли я предварительно загрузить их или что-то в этом роде? И... почему такая загрузка будет быстрее, чем создание 999 swf, их предварительная загрузка и управление ими с помощью js (вероятно, больше накладных расходов, но все же). - person zozo; 12.02.2011
comment
Вы можете передавать FLV. Предварительная загрузка требует загрузки всего файла перед его воспроизведением. - person weltraumpirat; 12.02.2011
comment
Проголосовать против через полтора года и без комментариев ... Как это должно помочь? - person weltraumpirat; 12.07.2012

Вкратце, при загрузке флеш плеер запустится на кадре 1, и будет продолжать сидеть там, пока все данные на кадре 1 не будут загружены. Только после этого он перейдет к следующему кадру. Вы можете получить подробный отчет о том, сколько байтов данных экспортируется в каждый кадр, установив флажок «Создать отчет о сборке» на вкладке «Flash» в разделе «Файл-> Настройки издателя».

Чтобы получить простое отображение загрузки, добавьте TextField с именем «loader_txt» в кадр 1 и добавьте этот код в действии:

  stop();

  this.addEventListener(Event.ENTER_FRAME, loading);

  function loading(e:Event):void{

      var total:Number = this.stage.loaderInfo.bytesTotal;
      var loaded:Number = this.stage.loaderInfo.bytesLoaded;

      loader_txt.text = Math.floor((loaded/total)*100)+ "%";

    if (total == loaded){
      play();
      this.removeEventListener(Event.ENTER_FRAME, loading);
    }

  }

Чтобы убедиться, что ваши активы и код actionscript экспортированы за пределы кадра 1, чтобы приведенный выше код мог срабатывать сразу после начала загрузки флэш-ролика, перейдите в «Файл-> Настройки публикации», выберите вкладку «Flash» и нажмите «Настройки». .» справа от «Скрипт». Должен появиться диалог. В этом диалоговом окне в разделе «Экспортировать классы во фрейме:» введите 2.

Для активов в библиотеке вам может потребоваться сделать то же самое. Щелкните правой кнопкой мыши актив библиотеки и выберите свойства, и вы увидите возможность снять флажок «Экспортировать в кадре 1». Если вы снимите флажок (что означает, что флэш-ролик может начать воспроизводиться до того, как этот ресурс будет загружен), вам нужно будет убедиться, что у вас есть ссылка на этот символ где-то за кадром 1 на временной шкале, иначе Flash пропустит его из компиляции.

Удачи!

person Manto    schedule 13.02.2011