Просмотр полной версии : белый квадрат до начала загрузки флэш
Всем добрый день.
Тут такая ситуация - перед тем как начинает грузится флэш (появляется полоса загрузки), вместо флэша - белый квадрат. И чем медленнее инет - тем дольше он висит (((. Насколько я понял - это он догружает саму полоску загрузки и еще какие то штуки?
Каак от этого избавится?
Никак. либо делать прелоадер для прелоадера, что впринципе у вас и происходит, либо вообще никак
может фон флешки изначально сделать другого цвета?
соответствующий фон флешки + минимальный прелоадер по размеру файла, иначе прелоадер теряет смысл
так фон черный итак (
а прелоадер минимальный - линия простая длинна которой расчитывается от загруженных байт и цифры
дайте ваш fla ( если он есть) я проверю
andrew911
02.03.2011, 01:13
Если на символах стоит галочка экпортировать в 1й кадр, то у вас сначала грузится не только прелоадер.
несколько шрифтов стоит (
фла дать немогу - заказчик против )
ну вот шрифты и грзузят это понятно же
я уже тоже к этому пришел
вот думаю как это обойти нормально.
реально написать загрузчик который будет просто выводить черный фон до того как шрифты загрузятся?
спасибо, дальше теперь только погуглить и пописать )
да я думаю и без гугла сами разберетесь. задача то тривиальная
NikosHope
04.03.2011, 13:43
Вот пример прелоудера. Создаём пустой проект во Flash, в первый кадр вставляем код:
var loader:Loader = new Loader();
loader.load(new URLRequest("flash.swf"));
bar_mc.width=0;
bar_mc.height=30;
bar_mc.x = Math.abs((stage.stageWidth-200)/2);
bar_mc.y = Math.abs((stage.stageHeight-30)/2);
outline_mc.width = 204;
outline_mc.height = 38;
outline_mc.x = Math.abs((stage.stageWidth-200)/2)-2;
outline_mc.y = Math.abs((stage.stageHeight-30)/2)-2;
loader_txt.x = Math.abs((stage.stageWidth-200)/2);
loader_txt.y = Math.abs((stage.stageHeight-30)/2)+45;
loader.addEventListener(Event.ENTER_FRAME, update);
function update(e:Event):void {
var loaded = loader.contentLoaderInfo.bytesLoaded;
var total = loader.contentLoaderInfo.bytesTotal;
var completed = Math.floor(loaded/total*100);
bar_mc.width = completed*2;
loader_txt.text = completed + "%";
}
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler(event:Event):void {
var loadedSWF:MovieClip = event.target.content;
addChild(loadedSWF);
loadedSWF.addEventListener(Event.ADDED_TO_STAGE, ready);
function ready(e:Event) {
loader_txt.visible=false;
bar_mc.visible=false;
}
}
А в основной флэш-файл, который будем подгружать, нужно добавить следующее:
public function имя_главного_класса() {
addEventListener(Event.ADDED_TO_STAGE, ready);
}
private function ready(e:Event) {
removeEventListener(Event.ADDED_TO_STAGE, ready);
имя_класса_с_основным_кодом();
}
public function имя_класса_с_основным_кодом() {
//основной код
При таком раскладе (что в принципе понятно) у меня перестает работать в подгружаемой флешке передваемые ей параметры.
Как можно их получить поправильнее?
if(stage.loaderInfo.parameters.lang)
MovieClip(root).Lang = stage.loaderInfo.parameters.lang;
else
MovieClip(root).Lang = "EN";
if(stage.loaderInfo.parameters.skip)
MovieClip(root).Skip = stage.loaderInfo.parameters.skip;
else
MovieClip(root).Skip = "SKIP FLASH";
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.