Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Léo M Moreira

[Resolvido] currentFrame de SWF externo

Recommended Posts

Olá amigos,

 

Estou com um sério problema aqui.

Tenho um SWF externo que é carregado através de um objeto LOADER, após seu carregamento coloco ele no STAGE com o addChild(loader)... até ai está ótimo, o problema é: Preciso saber o total de frames que este SWF externo tem e em qual posição ele está para que eu saiba se já terminou ou não.

O grande problema é que como adiciono ao addChil() um objeto LOADER, este não tem a propriedade ENTERFRAME.

Alguém tem alguma idéia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

use a propriedade content do Loader, é lá que ele "guarda" o swf

 

var mc:MovieClip = MovieClip(myloader.content)

 

[]´s

 

Salve amigo!

 

Fiz como me orientou, veja o código:

var url:String="./arquivo.swf";
var leitor:Loader = new Loader();
var requisicao:URLRequest=new URLRequest(url);
leitor.load(requisicao);
var mc_midia:MovieClip = MovieClip(leitor.content);
addChild(mc_midia);

Ai ele me mostra o seguinte erro

TypeError: Error #2007: O parâmetro child não deve ser nulo.
	at flash.display::DisplayObjectContainer/addChild()
	at teste_fla::MainTimeline/frame1()

Alguma idéia do que eu posso ter feito de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele só funciona depois que o swf foi carregado, você precisa usar o evento COMPLETE

 

adicione essa parte:

 

leitor.contentLoaderInfo.addEventListener(Event.COMPLETE, movieComplete);
function movieComplete(e:Event):void {
var mc_midia:MovieClip = MovieClip(leitor.content);
addChild(mc_midia);
}

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele só funciona depois que o swf foi carregado, você precisa usar o evento COMPLETE

 

adicione essa parte:

 

leitor.contentLoaderInfo.addEventListener(Event.COMPLETE, movieComplete);
function movieComplete(e:Event):void {
var mc_midia:MovieClip = MovieClip(leitor.content);
addChild(mc_midia);
}

 

[]´s

 

 

Maninho, muito obrigado! Funcionou perfeitamente... apenas para as "futuras gerações" que consultarem este post estou colocando o código completo (já que meu objetivo era testar se o swf havia terminado ou não)

 

var urlMidia:String="externo.swf";
var leitor:Loader = new Loader();
var requisicao:URLRequest=new URLRequest(urlMidia);
leitor.load(requisicao);

//mandar para o stage
leitor.contentLoaderInfo.addEventListener(Event.COMPLETE, mostra);
function mostra(e:Event):void {
	var mc:MovieClip=MovieClip(leitor.content);
	addChild(mc);
	mc.addEventListener(Event.ENTER_FRAME, termino);
	function termino(e:Event):void {
		var frameAtual:Number = mc.currentFrame;
		var frameTotal:Number = mc.totalFrames;
		if(frameAtual == frameTotal){
			trace("terminou");
		}
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.