PDA

Просмотр полной версии : белый квадрат до начала загрузки флэш


hwarang
01.03.2011, 18:50
Всем добрый день.
Тут такая ситуация - перед тем как начинает грузится флэш (появляется полоса загрузки), вместо флэша - белый квадрат. И чем медленнее инет - тем дольше он висит (((. Насколько я понял - это он догружает саму полоску загрузки и еще какие то штуки?

Каак от этого избавится?

in4core
01.03.2011, 18:59
Никак. либо делать прелоадер для прелоадера, что впринципе у вас и происходит, либо вообще никак

cr0w312
01.03.2011, 19:02
может фон флешки изначально сделать другого цвета?

Alexd21
01.03.2011, 20:05
соответствующий фон флешки + минимальный прелоадер по размеру файла, иначе прелоадер теряет смысл

hwarang
02.03.2011, 00:20
так фон черный итак (
а прелоадер минимальный - линия простая длинна которой расчитывается от загруженных байт и цифры

in4core
02.03.2011, 00:30
дайте ваш fla ( если он есть) я проверю

andrew911
02.03.2011, 01:13
Если на символах стоит галочка экпортировать в 1й кадр, то у вас сначала грузится не только прелоадер.

hwarang
02.03.2011, 01:28
несколько шрифтов стоит (

фла дать немогу - заказчик против )

in4core
02.03.2011, 02:22
ну вот шрифты и грзузят это понятно же

hwarang
02.03.2011, 16:56
я уже тоже к этому пришел

вот думаю как это обойти нормально.

реально написать загрузчик который будет просто выводить черный фон до того как шрифты загрузятся?

in4core
02.03.2011, 18:23
реально

hwarang
03.03.2011, 01:04
спасибо, дальше теперь только погуглить и пописать )

in4core
03.03.2011, 02:32
да я думаю и без гугла сами разберетесь. задача то тривиальная

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 имя_класса_с_основным_кодом() {
//основной код

hwarang
07.03.2011, 14:59
При таком раскладе (что в принципе понятно) у меня перестает работать в подгружаемой флешке передваемые ей параметры.
Как можно их получить поправильнее?

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";