Flash Preloader as3

Можно ли установить общее количество байтов в предварительном загрузчике as3? Я не уверен, что это правильно, но, чтобы избежать бесконечного цикла, я сделал это.

var loadper:Number=0;
var total_bytes:Number = 3484484;
loaderInfo.addEventListener(ProgressEvent.PROGRESS, loader);

function loader(filename:ProgressEvent) { 
   var loaded_bytes:Number = stage.loaderInfo.bytesLoaded;
   _txt.text=String(loadper+"%");
   if(loadper>=100) { 
      preLoader_mc.perct_mc.visible=false;
      loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loader);
   }
}

person Myforce22    schedule 20.08.2012    source источник


Ответы (2)


Просто прислушайтесь к Event.COMPLETE, который срабатывает после полной загрузки файла. Наряду с несколькими другими настройками:

loaderInfo.addEventListener(ProgressEvent.PROGRESS, loaderProgress);
loaderInfo.addEventListener(Event.COMPLETE, loaderComplete);

function loaderProgress(event:ProgressEvent) { 
    var percentage:Number = Math.round((stage.loaderInfo.bytesLoaded / stage.loaderInfo.bytesTotal) * 100);
    _txt.text = percentage + "%";
}

function loaderComplete(event:Event):void
{
    loaderInfo.removeEventListener(ProgressEvent.PROGRESS, loaderProgress);
    loaderInfo.removeEventListener(Event.COMPLETE, loaderComplete);

    preLoader_mc.perct_mc.visible = false;
}
person xLite    schedule 20.08.2012

В этом же случае есть информация об общем количестве байтов.

Вы можете получить это как

filename.bytesTotal

где filename - ваша переменная события в соответствии с вашим кодом.

При выполнении

filename.bytesLoaded / filename.bytesTotal

у вас процент завершения. Это никогда не войдет в бесконечный цикл.

Вы можете проверить более подробную информацию в документации и примерах Adobe здесь.

person konsnos    schedule 01.11.2013