Ir para conteúdo

POWERED BY:

Arquivado

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

ebasilio

Utilizando o loader e conflito interno acontece

Recommended Posts

Olá Pessoal. Fiz um site em AS2, mas quando estava terminando descobri que para colocar o google maps no flash teria que ser AS3.

Até agora estava indo bem, mas enrosquei no loader e esta dificil resolver.

Nuns frames anteriores, utilizei o loader para incluir um swf externo e funcionou sem problema:

veja:

var request:URLRequest = new URLRequest("imagens_clinica_as3.swf"); 
var loader:Loader = new Loader() 
loader = new Loader();

// aplicando propriedades aos objeto 
loader.y = 222;
loader.x = 687;
loader.load(request); 
addChild(loader);
profissionais_AS3

 

nuns frames depois coloquei o mesmo codigo de cimamudando apenas o swf externo, mas ele diz que há um conflito:

Scene 1, Layer 'action', Frame 48, Line 2 1151: A conflict exists with definition request in namespace internal.

tentei mudar algumas coisas pra resolver mas nada feito.

Acho que é mais facil de resolver do que explicar, pelo menos espero!

Agradeço que puder me ajudar!

Eduardo Basilio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eduardo, os scripts em frames tem um mesmo escopo, isto é, variáveis e funções declaradas em um frame ainda existem nos outros frames da mesma timeline. Você declarou a variável request em um frame anterior, portanto, não pode re-declarar. Ou você usa uma outra variável com um outro nome, ou define o valor da mesma, sem declarar:

 

var request2:URLRequest = [...]
// ou
request = [...]

O mesmo vale pra variável loader.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Bruno!!!!

Tentei algumas formas, mas não essa, obrigado mesmo!

 

Tem mais uma coisa! :(

após rodar o swf externo, se mudo de frame, o swf continua passando e se vou para o segundo swf externo, os doi ficam passando ao mesmo tempo!

Muito diferente o AS3, tô penando!

me ajuda mais nesse problema, pf!

 

um abraço e obrigado novamente!

 

 

Eduardo, os scripts em frames tem um mesmo escopo, isto é, variáveis e funções declaradas em um frame ainda existem nos outros frames da mesma timeline. Você declarou a variável request em um frame anterior, portanto, não pode re-declarar. Ou você usa uma outra variável com um outro nome, ou define o valor da mesma, sem declarar:

 

var request2:URLRequest = [...]
// ou
request = [...]

O mesmo vale pra variável loader.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Bruno!!!!

Tentei algumas formas, mas não essa, obrigado mesmo!

 

Tem mais uma coisa! :(

após rodar o swf externo, se mudo de frame, o swf continua passando e se vou para o segundo swf externo, os doi ficam passando ao mesmo tempo!

Muito diferente o AS3, tô penando!

me ajuda mais nesse problema, pf!

 

um abraço e obrigado novamente!

 

 

Eduardo, os scripts em frames tem um mesmo escopo, isto é, variáveis e funções declaradas em um frame ainda existem nos outros frames da mesma timeline. Você declarou a variável request em um frame anterior, portanto, não pode re-declarar. Ou você usa uma outra variável com um outro nome, ou define o valor da mesma, sem declarar:

 

var request2:URLRequest = [...]
// ou
request = [...]

O mesmo vale pra variável loader.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal, consegui resolver em partes!

coloquei o removeChild em cada ação do addEventListener:

stop();
home.addEventListener(MouseEvent.MOUSE_DOWN, funcao);
clinica.addEventListener(MouseEvent.MOUSE_DOWN, funcao2);
prof.addEventListener(MouseEvent.MOUSE_DOWN, funcao3);
contato.addEventListener(MouseEvent.MOUSE_DOWN, funcao4);
function funcao(e:MouseEvent):void {
       gotoAndPlay(15);
	removeChild(loader)
}
function funcao2(e:MouseEvent):void {
       gotoAndPlay(30);
	removeChild(loader)
}
function funcao3(e:MouseEvent):void {
       gotoAndPlay(45);
	removeChild(loader)
}
function funcao4(e:MouseEvent):void {
       gotoAndPlay(60);
	removeChild(loader)
}

 

Agora o script só tá dando erro quando não tem um swf externo em cena!

 

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

 

eu consegui entender, mas não sei resolver isso ainda, rs

Tenho duas saidas: Ou coloco um swf externo em cada cena pra não dar essa mensagem ou vcs me dão um help com o script. Prefiro a segunda opção!

um abraço

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.