Ir para conteúdo

POWERED BY:

Arquivado

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

Juan_VALSA

Acessando um moviclip carregado em um container

Recommended Posts

Amigos,

eu estou com uma dúvida e gostaria da ajuda de vocês.

 

Fiz um código que carrega um swf externo em um container com um "loader".

Eu quero acessar o movie clipe com uma função para mudar a opacidade de um clip que está dentro do movie que carreguei externamente.

Mas usando os nomes que instanciei no stage eu não estou conseguindo acessar.

Usei um código que no help ajuda a fazer um lista dos objetos e apareceram vários "instance54" e etc.

Alguém poderia me expoicar como acesso o movieclip pelo nome? Ou se esse método está ultrapassado qual seria o jeito correto?

 

POr favor me deem essa luz.

abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Suponhamos que você tem um alvo(seu loader creio eu)

 

No qual você carregou o arquivo assim:

loader.loadMovie("clip.swf");

ok você carregou certo???

Dentro desse clip.swf tem um MovieClip que tem a instancia bolinha(exemplo heim)

Ai você quer mudar o alpha dessa bolinha ou fazer andar

 

Então você estando no palco deve usar o código:

loader.bolinha._alpha = 40;
loader.bolinha._x = 10;

Lembrando que você está no palco ;)

e não dentro de outro clip

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Amigos,

então vou colar abaixo o meu código para vocês olharem.

De fato eu carreguei e dentro do movie carregado tem uma instancia conteudo1. Quando tento acessar container.conteudo1.alpha=100 por exemplo ele retorna um erro.

 

Vejam como carreguei o movie externo.

Logo de cara no inicio do meu código eu mando ele carregar uma animação chamada entrada.

 

var ldr:Loader = new Loader();
container.addChild(ldr);
var entrada:URLRequest=new URLRequest("entrada.swf");
ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
ldr.load(entrada);

Depois eu faço trocar por um outro movie que carreguei com esse loader.

E nesse novo movie tem uma subNavegação. E nesse ponto que estou tendo problemas, de acessar o conteudo1, conteudo 2 e etc.

 

Usei uma funcão(traceDisplayList) que achei no help para verificar os nomes dos filmes contidos no container, ele me retorna os nomes certos mas como se estivesse dentro de um instace52, instance60 e só consegui acessar alguma propriedade de uma instancia dentro do container usando:

trace(container.getChildAt(0).x)

Obrigado pela atenção espero que possam me ajudar.

abs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acrescentando ao post anterior o retorno que a fiunção traceDisplayList imprime:

[object Loader] instance54
     [object MovieClip] instance60
         [object MovieClip] instance65
             [object Shape] instance66
         [object MovieClip] instance67
             [object MovieClip] instance68
                 [object Shape] instance69
             [object MovieClip] instance70
                 [object Shape] instance71
             [object MovieClip] instance72
                 [object Shape] instance73
         [object MovieClip] instance74
             [object MovieClip] instance75
                 [object Shape] instance76
             [object MovieClip] instance77
                 [object Shape] instance78
             [object MovieClip] instance79
                 [object Shape] instance80
         [object MovieClip] conteudo1
             [object StaticText] instance81
             [object MovieClip] instance82
                 [object StaticText] instance83
         [object MovieClip] conteudo2
             [object StaticText] instance84
             [object MovieClip] instance85
                 [object StaticText] instance86
         [object MovieClip] conteudo3
             [object StaticText] instance87
             [object MovieClip] instance88
                 [object StaticText] instance89
         [object MovieClip] conteudo4
             [object StaticText] instance90
             [object MovieClip] instance91
                 [object StaticText] instance92

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eeeeeeee

 

Parabens!!!

 

Isso é action script 3.0 e você está perguntando no 2.0

 

Ganhou um Mover de PRESENTE!!! :D

 

Aconselho você usar classes para trabalhar com diferenças de clips...

E alpha em as 3.0 é de 0 a 1 e é .alpha não ._alpha

 

E no seu exemplo acima...

 

Você pode acessar:ldr.load(entrada);Na função responsavel pelo load dele

 

Exemplo:

var ld:Loader = new Loader()

ld.load(new URLRequest('arquivo.swf'));

ld.contentLoaderInfo.addEventListener(Event.INIT, onLoadINIT);

function onLoadINIT(e:Event):void{
    e.content.target.alpha = 0.1;
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi mal, eu realmente não percebi que estava no forum errado, mudei até o meu favoritos para não errar de novo.

 

Voltando ao assunto,tá clareando aqui mas ainda estou com dúvidas.

 

Fiz o aue você sugeriu.

Escrevi o código abaixo.


function trocaConteudo(alvo:String):void {
	var reque:URLRequest=new URLRequest(alvo);
	ldr.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress);
	ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
	ldr.load(reque);
}

function loadComplete(e:Event):void {
	trace(e.target) //retornoa [object loader]
        trace(e.target.conteudo1) //retrna que não encontrou
	
}

A primeira função, eu uso para trocar o URLRequest, e na "loadComplete" eu chamo animações e alphas etc.

Como ainda não estou acostumado com o AS3 eu faço as coisas pensando muito como AS2, seguindo sua sugestão usei o "e.target" e realmente tirou a gambiarra que eu tinha feito, já limpou essa parte do código e funcionou perfeitamente, mas ainda estou com problemas para acessar os movie que foi carregado pelo loader.

Acredito que ainda tenha um degrau na hierarquia entre o loader e o conteudo1(nome do meu movie), você sabe dizer se é isso? como pulo esse degrau?.

 

Obrigado novamente e se possível aguardo sua ajuda.

abs!

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.