Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Внешний прелоадер (http://www.flasher.ru/forum/showthread.php?t=174277)

sneltyn 21.01.2012 17:46

Внешний прелоадер
 
Здравствуйте! Сделал внешний прелоадер для swf файла, но в этой swf есть загружаемые данные из xml? И когда делаю внешний прелоадер, то это не учитывается, как быть из-за этого swf подгружается раньше чем нужно и весь контент не успевает загрузиться он грузиться после того как уже появилась swf! Как быть в этом случае?

Deimos747 21.01.2012 18:03

Сейчас вы похоже используете событие Complete. В подгружаемой swf создайте событие CompleteXml и его посылайте, по окончании загрузки xml. В прелоадере вешайте слушатель CompleteXml на подгруженную флешку, после того как придёт INIT и вы сможете подключиться к флешке. Как то так...

sneltyn 21.01.2012 18:16

Да использую Complete вот так:

Код AS3:

function loadXML(file:String):void{
        var xmlLoader:URLLoader = new URLLoader();
        xmlLoader.load(new URLRequest(file));
        xmlLoader.addEventListener(Event.COMPLETE, comleteLoading);
 
}
function comleteLoading(e:Event):void{
        xml = XML(e.target.data);
        xmlList = xml.children();
        trace(xml);
        removeChild(completeLoad);
        loadMenus();
}


Deimos747 21.01.2012 18:33

Код AS3:

function comleteLoading(e:Event):void{
        dispatchEvent("xmlComplete");//ловите его в прелоадере, это и будет полной загрузкой
        xml = XML(e.target.data);
        xmlList = xml.children();
        trace(xml);
        removeChild(completeLoad);
        loadMenus();
}


sneltyn 21.01.2012 19:58

Выдает ошибку! Монтажный кадр 1, слой "AS", кадр 1, строка 58 1067: Неявное приведение значения типа String к несоответствующему типу flash.events:Event.

КорДум 21.01.2012 20:24

Код AS3:

dispatchEvent(new Event("xmlComplete"));


sneltyn 21.01.2012 20:44

А что писать в лоадере, я с dispatchEvent еще не работал!

КорДум 21.01.2012 20:49

Код AS3:

_loader.content.addEventListener("xmlComplete" /* надо вынести в константу */, handler);


sneltyn 21.01.2012 20:57

Код AS3:

import flash.display.Loader;
import flash.net.URLRequest;
var xml:XML;
var xmlList;
var loader:Loader = new Loader();
var _loader:Loader = new Loader();
 
 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
 
loader.load(new URLRequest("experement.swf"));
function onComplete(e:Event):void{
        _loader.content.addEventListener("xmlComplete", handler);
}
 
function handler():void{
trace("Загрузка завершена, можно поместить на сцену.");
addChild(loader);
 
}
 
 
function onProgress(e:ProgressEvent):void
{
trace("Загрузка "+ e.target.bytesLoaded + "/"+e.target.bytesTotal);
}

Выдает в выводе TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at experement_fla::MainTimeline/frame1()
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at loader_fla::MainTimeline/onComplete()

КорДум 21.01.2012 21:01

Код AS3:

var loader:Loader = new Loader();
var _loader:Loader = new Loader();

Вы сами запутались в этих переменных. Исправляйте.


Часовой пояс GMT +4, время: 02:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.