Я разработал флэш-сайт для клиента, который имеет учетную запись в GoDaddy и успешно загрузил все файлы на хост-сервер. Сайт состоит из начального preloader с именем «preloader.swf», который загружает внешний SWF-файл с именем «main.swf», который содержит различные разделы, включая раздел галереи изображений.
Тем не менее, я замечаю, что время от времени (как это не всегда бывает) начальный флэш-предзагрузчик для основного сайта на основе флэш-памяти загружается быстрее, чем обычно, с «икотой». Это приводит к тому, что при необходимости просмотра изображения в разделе галереи сайта (где каждое изображение загружается извне с сервера, имеющего собственный предварительный загрузчик), выбранное изображение загружается неровно с «икотой» (например, из 22% он делает паузу, затем сразу же переходит на 31%, затем снова делает паузу и сразу переходит на 47% и т. Д.)
Затем, в определенный момент времени, загрузчик внезапно зависает / зависает весь сайт, не имея другого выбора, кроме как обновить сайт.
Только тогда, когда предварительный загрузчик изображения замерзнет и сайт обновится или кэш будет очищен, весь сайт будет работать идеально, как предполагалось - т.е. начальный предварительный загрузчик загружается медленнее и плавнее, а предварительные загрузчики когда изображения загружаются также более плавно (нет резких скачков в процентах, как раньше; предзагрузчик загружается с нормальными приращениями).
Может ли кто-нибудь сказать мне, в чем может быть проблема с возможным решением того, как я могу сделать так, чтобы сайт всегда загружался плавно, без каких-либо сбоев, зависаний и зависаний, поскольку я проверял свой код снова и снова но я не могу найти ничего плохого в этом?
Я проводил некоторые исследования и читал, что причина может быть в следующей строке "ProgressEvent.PROGRESS", так как иногда она может не срабатывать в IE или Firefox. Это так? Если да, то какую альтернативу мне взять?
Надеюсь услышать ответ как можно скорее.
Спасибо и С уважением.
P.S. Ниже я включил код AS для моего начального загрузчика для загрузки основного сайта (а не загрузчик, используемый для загрузки изображений):
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
//no scale;
stage.scaleMode = StageScaleMode.NO_SCALE;
//align to top left
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, onPreloaderResize);
addEventListener(Event.ENTER_FRAME, onPreloaderEnter);
angel_pic.alpha = 0;
top_left_line.visible = false;
top_right_line.visible = false;
side_left_line.visible = false;
side_right_line.visible = false;
bottom_left_line.visible = false;
bottom_right_line.visible = false;
var req:URLRequest = new URLRequest("main.swf");
var loader:Loader = new Loader();
loader.load(req);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, showProgress);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
function showProgress(event:ProgressEvent):void
{
var percent:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
if ((percent > 0) && (percent <= 34))
{
top_left_line.visible = true;
top_right_line.visible = true;
top_left_line.width = percent * ((angel_pic.width / 2) / 34);
top_right_line.width = percent * ((angel_pic.width / 2) / 34);
}
else
{
if ((percent > 34) && (percent <= 66))
{
side_left_line.visible = true;
side_right_line.visible = true;
side_left_line.height = (percent - 34) * (angel_pic.height / 32);
side_right_line.height = (percent - 34) * (angel_pic.height / 32);
}
else
{
if (percent > 66)
{
bottom_left_line.visible = true;
bottom_right_line.visible = true;
bottom_left_line.width = (percent - 66) * ((angel_pic.width / 2) / 34);
bottom_right_line.width = (percent - 66) * ((angel_pic.width / 2) / 34);
}
}
}
}
function loadComplete(event:Event):void
{
var num:int = numChildren;
while (num--)
{
removeChildAt(num);
}
addChild(loader);
}
function onPreloaderResize(event:Event):void
{
var preloaderPadding:Number = (stage.stageWidth / 1000) * 35;
angel_pic.x = (stage.stageWidth / 2) - (angel_pic.width / 2);
angel_pic.y = (stage.stageHeight / 2) - (angel_pic.height / 2);
angel_pic.width = stage.stageWidth - (preloaderPadding * 2);
angel_pic.height = angel_pic.width / 4.9;
top_left_line.x = stage.stageWidth / 2;
top_left_line.y = angel_pic.y;
top_right_line.x = stage.stageWidth / 2;
top_right_line.y = angel_pic.y;
side_left_line.x = preloaderPadding + side_left_line.width;
side_left_line.y = angel_pic.y;
side_right_line.x = preloaderPadding + angel_pic.width;
side_right_line.y = angel_pic.y;
bottom_left_line.x = preloaderPadding + bottom_left_line.height;
bottom_left_line.y = angel_pic.y + angel_pic.height;
bottom_right_line.x = preloaderPadding + angel_pic.width;
bottom_right_line.y = angel_pic.y + angel_pic.height;
}
function onPreloaderEnter(event:Event):void
{
var preloaderPadding:Number = (stage.stageWidth / 1000) * 35;
angel_pic.x = (stage.stageWidth / 2) - (angel_pic.width / 2);
angel_pic.y = (stage.stageHeight / 2) - (angel_pic.height / 2);
angel_pic.width = stage.stageWidth - (preloaderPadding * 2);
angel_pic.height = angel_pic.width / 4.9;
top_left_line.x = stage.stageWidth / 2;
top_left_line.y = angel_pic.y;
top_right_line.x = stage.stageWidth / 2;
top_right_line.y = angel_pic.y;
side_left_line.x = preloaderPadding + side_left_line.width;
side_left_line.y = angel_pic.y;
side_right_line.x = preloaderPadding + angel_pic.width;
side_right_line.y = angel_pic.y;
bottom_left_line.x = preloaderPadding + bottom_left_line.height;
bottom_left_line.y = angel_pic.y + angel_pic.height;
bottom_right_line.x = preloaderPadding + angel_pic.width;
bottom_right_line.y = angel_pic.y + angel_pic.height;
}