PDA

Просмотр полной версии : Динамическая загрузка картинок, не удаляются дети - addChild(picLoader)


Exey
17.02.2007, 21:12
Нужно, чтобы в слайдшоу, при загрузке следующей фотки, была видна предыдущая.
Если загружать друг на друга — флэш сжирает всю оперативку(фоток около тысячи):

function LoaderExample(nextfoto):void
{
var picLoader:Loader = new Loader();
var request:URLRequest = new URLRequest(nextfoto);
picLoader.load(request);
addChild(picLoader);
}

Использование контейнера (как здесь http://flasher.ru/forum/showthread.php?t=83673#2) даёт тот же самый эффект.

Как видеть предыдущую картинку, при загрузке новой?

etc
17.02.2007, 21:17
Грузить попеременно в два разных лоадера, меняя у них глубину.

Exey
17.02.2007, 21:49
Спасибо, сделал так:

var loader1:Loader = new Loader();
var loader2:Loader = new Loader();
var ldrcount:uint;

function LoaderExample(nextfoto):void
{
var request:URLRequest = new URLRequest(nextfoto);
loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete1);
loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete2);
if(true == ldrcount%2){
loader1.load(request);
ldrcount++;
}else{
loader2.load(request);
ldrcount++;
}
}
public function onComplete1(event:Event):void {
swapChildren(loader1, loader2);
}
public function onComplete2(event:Event):void {
swapChildren(loader2, loader1);
}


Правда события запаздывают. А почему дебагер вылетает перед загрузкой второй картинки?

Nirth
17.02.2007, 21:51
А что он говорит?

Exey
17.02.2007, 22:11
Ничего.
У меня отдельный класс Picloader();
Если закомментить:

//loader1.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete1);
//loader2.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete2);

то не вылетает.

Прослушка вырубает?

Nirth
18.02.2007, 20:19
Когда вылетает дебагер, он должен написать сообщение, дать стэк ошибки.

Exey
25.02.2007, 16:07
Nirth Вот Stack:

file:/C:/Documents and Settings/Администратор/My Documents/Flex Builder 2/Slideshow/bin/Slideshow-debug.html
Main Thread (Suspended)
Picloader/Picloader::onComplete2

Exey
25.02.2007, 16:12
На обычном модеме, первые фотки грузяться нормально, потом потухают, как будто лодеры срабатывают одновременно.

Как фиксить?
http://ravenland.ru/about/upload/Slideshow2.swf

Nirth
25.02.2007, 23:48
господи ну пишет же тебе два эксепшенa


TypeError: Error #1010: A term is undefined and has no properties.
at Previewloader/myPreviewLoader()
at Slideshow/::ShowPreview()
at Slideshow/::parseData2()
at Slideshow/onLoaded2()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Slideshow/::parseData()
at Slideshow/onLoaded()
at flash.events::EventDispatcher/flash.events:EventDispatcher::dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/flash.net:URLLoader::onComplete()

В первом случае свойство не найдено, во втором null.