IE не поддерживает as3 preloader action - PullRequest
1 голос
/ 13 июля 2011

Я использовал приведенный ниже код.

stop();
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadingAction);
this.loaderInfo.addEventListener(Event.COMPLETE, onLoadedAction);
this.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErroAction);
function onLoadingAction (e:ProgressEvent):void 
{
    trace("loading");   
}
function onLoadedAction (e:Event):void 
{
    this.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, onLoadingAction);
    gotoAndStop(currentFrame+1);
}
function ioErroAction (e:IOError):void 
{
    trace("Dev Ben " + e.toString());
}

Этот код поддерживает chrome и firefox.Но если я запускаю с использованием IE, он застрял с onLoadingAction.

Что мне нужно сделать, чтобы работать в IE?

1 Ответ

5 голосов
/ 13 июля 2011

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

Вместо этого проверил, что loaderInfo.bytesLoaded == loaderInfo.bytesTotal в обработчике ENTER_FRAME или TIMER:

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(event:Event):void
{
    if(loaderInfo && loaderInfo.bytesLoaded == loaderInfo.bytesTotal)
    {
        // load complete
    }
}
...