Porque não fazes substituir antes o conteúdo a tocar em vez de criares
novas instâncias recorrendo a addChild e removeChild?
Quase que aposto que poderá estar ai a Memory Leak. Apesar de retirares
da displayList isso não te garante que o teu objecto seja removido de
memória, além de que disseste que usavas un loader único mas o facto é
que estás a usar para cada objecto um loader separado
O código que se segue não foi minimamente testado mas dá para perceber o
pretendido.
private function carregaVideo():void
{
var url:String = listaDeVideos[currentVideo];
* var l:Loader = new Loader();
l.load(new URLRequest(url));*
l.contentLoaderInfo.addEventListener(Event.COMPLETE,
loaderCompleteHandler);
}
Já experimentaste move-lo para o movieClip como propriedade privada ?
package com.bluebox.view
{
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.system.Security;
import flash.system.System;
import flash.ui.Mouse;
public class Main extends MovieClip
{
private var listaDeVideos:Array = [];
private var currentVideo:Number = 0;
private var swfATocar:DisplayObject;
private var contentLoader: Loader = new Loader();
public function Main()
{
stage.displayState = "fullScreen";
Mouse.hide();
var request:URLRequest = new
URLRequest("playlist.xml");
var loader:URLLoader = new URLLoader;
loader.load(request);
loader.addEventListener(Event.COMPLETE,
xmlLoadCompleteHandler);
contentLoader.contentLoaderInfo.addEventListener("finish", finishHandler);
addChildAt(contentLoader.contentLoaderInfo,2);
}
private function xmlLoadCompleteHandler(ev:Event):void
{
var loader:URLLoader = URLLoader(ev.currentTarget);
var xmlCarregado:XML = XML(loader.data);
var playlist:XMLList = xmlCarregado.video;
for each(var item:XML in playlist)
{
var url:String = item.url;
listaDeVideos.push(url);
}
carregaVideo();
}
private function carregaVideo():void
{
var url:String = listaDeVideos[currentVideo];
contentLoader.load(new URLRequest(url));
}
private function finishHandler(ev:Event):void
{
currentVideo= ( currentVideo <
listaDeVideos.length -1 ) ? 0 : currentVideo++;
carregaVideo();
}
}
}
--
João Fernandes
Adobe Community Expert
http://www.onflexwithcf.org
http://www.riapt.org
Portugal Adobe User Group (http://aug.riapt.org)
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade
Portuguesa de Desenvolvimento de RIAs - www.riapt.org" do Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---