воскресенье, 28 июня 2009 г.

IE vs Flash (AS3)

Решил тут записывать о моментах возникающих в разработке на Flash (AS), себе для памяти, а может кому еще пригодится.

Практически все знают, что IE очень своеобразный браузер, но он все еще не перестает меня удивлять. Даже казалось бы в кроссплатформенный флеш он вносит свои коррективы.

IE VS Flash

Итак был себе мирно код для прелоадера на AS3, никого не трогал:


loaderInfo.addEventListener(ProgressEvent.PROGRESS, loadingListener);
private function loadingListener (e:ProgressEvent):void
{
  if(e.bytesLoaded>=e.bytesTotal)
  {
    gotoAndStop(2);
  }
}



Но, оказывается, если Internet Explorer закэшировал флешку, то ProgressEvent не работает.
Поэтому, надо использовать старый добрый onEnterFrame:


root.addEventListener("enterFrame",onEnterFrame);
function onEnterFrame(e:Event)
{
  if(loaderInfo.bytesLoaded >= loaderInfo.bytesTotal)
  {
    gotoAndStop(2);
    root.removeEventListener("enterFrame",onEnterFrame);
  }
}



либо отдельно добавить проверку загрузки


if (loaderInfo.bytesLoaded >= loaderInfo.bytesTotal)
{
  gotoAndStop(2);
}

Приятного кодинга!