Ir para conteúdo

POWERED BY:

Arquivado

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

Alex P. Souza

[Resolvido] Carregar imagem via XML

Recommended Posts

Pessoal, preciso de um help.

 

Preciso carregar imagens pra dentro de um MovieClip via XML.

Imagem1 no frame 1, Imagem2 no frame 2 e assim por diante.

 

Como eu faço isso ???

Usando as imagens externamente o meu arquivo ficará mais leve ???

 

Agradeço qualquer help ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o .swf ficará mais leve sim.

Você sabe como ler textos de um xml no Flash certo?

 

É bem simples, coloque o caminho da imagem no xml e depois no caminho de um loadMovie você coloca o né do xml.

 

Caso não tenha experiência com xml+flash:

 

http://imasters.com.br/artigo/4929/flash/recebendo_xml_no_flash/

 

Justamente. Eu não tenho experiência nenhuma de XML com Flash. Apenas de exemplos já prontos.

 

Você tem algum exemplo de uma função de loadMovie que chama imagens indicadas em XML ???

 

Obrigado ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marco, obrigado pelo link ...

Eu estudei esse conteúdo detalhadamente, realmente muito legal. Aprendi varias coisas que não compreendia.

Desculpa, é que de cara eu achei complicado demais, por isso pedi um outro exemplo mais simples. Mas é bem simples esse que você mandou.

 

Agora o que eu fiz foi o seguinte ...

<?xml version="1.0" encoding="iso-8859-1"?>
      <fotos>
        <foto url="C:\Users\ALEX\Desktop\img\1.jpg" />
      </fotos>

System.useCodepage = true; var MeuXML:XML = new XML();
      MeuXML.ignoreWhite = true;
      MeuXML.onLoad = function($sucesso){ 	
      if ($sucesso) { // Em caso de sucesso.   		
           trace(MeuXML.firstChild.childNodes[0].attributes.url);
      } 	
      else {
           trace($sucesso);
           trace("Ocorreu algum erro ao carregar os dados.");
      } 
};  

MeuXML.load("dados.xml");

Mas isso, tá me retornando esse caminho no Output ...

 

Como eu faço pra ele alocar essa imagem que o XML tá indicando pra dentro de um MovieClip ???

 

Obrigado ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra facilitar, salve tudo na mesma pasta, a foto, o xml e o .fla.

 

Depois, no palco, crie um mc vazio:

 

System.useCodepage = true; 
	var MeuXML:XML = new XML();
      MeuXML.ignoreWhite = true;
      MeuXML.onLoad = function($sucesso){ 
      //aqui você chama o endereço da imagem e carrega ela no mc
      loadMovie(MeuXML.firstChild.childNodes[0].attributes.url,mc);
      if ($sucesso) { // Em caso de sucesso.            
           trace(MeuXML.firstChild.childNodes[0].attributes.url);
      }         
      else {
           trace($sucesso);
           trace("Ocorreu algum erro ao carregar os dados.");
      } 
};  

MeuXML.load("dados.xml");

Testei aqui e deu certo http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marco Rougeth, muito obrigado cara ...

 

Funcionou certinho.

Até que eu não tava tão errado. Só indicar o MC e funcionou.

 

Valeu mesmo brother ...

 

Agora se eu quiser indicar o frame específico que essa imagem será exibida dentro do MC tem como ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um teste ai, tire o:

 

loadMovie(MeuXML.firstChild.childNodes[0].attributes.url,mc);

e adicione no frame que você quer que ele apareça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marco ...

Colocando essa linha de comando no frame do MovieClip não funcionou.

 

Ele só funciona se eu repetir a função inteira frame por frame e mudar apenas o nome do MC. Mas fazendo assim, quando ele vai mudar de frame, ele demora um pouco pra carregar a imagem, e mostra um fundo branco na transição, e isso acaba com a minha animação.

 

Você tem alguma outra idéia pra carregar a imagem em um frame pré definido ???

 

Obrigado ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas porque tem que carregar uma img em cada frame??? Não dá para otimizar isso??

 

Abs.

 

É que a transição de uma imagem pra outra é que faz a animação ...

 

Eu tenho 360 imagens que formam uma animação do mesmo objeto em 360º. A cada imagem esse objeto se desloca 1º.

Só que eu não posso colocar essas 360 imagens dentro de um .swf

Então pensei em chamar as imagens via XML.

 

Eu tô estudando a melhor forma de fazer isso.

Você tem alguma idéia ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi...

Você não precisa de 360 frames com 360 MCs, apenas um e a utilização do XML é a indicada.

Para evitar falhas na animação, você deverá carregar primeiro algumas imagens antes de iniciar a animação - e seguir a ordem de carregamento. E para a transição de imagens utilize um intervalo de tempo.

Referências "loadClip" e "setInterval".

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pensei em algo do tipo.

 

Quando o cara abrir a página com a animação, primeiro a timeline passa e carrega todos os MC's com as imagens. E seta uma variavel. Como se fosse um preloader.

E depois que ele acabar de carregar. Começa a animaçao, e em cada frame ele já puxa essa variavel com o MC já carregado com a imagem. E entao ele nao vai precisar desse tempo de carregamento na transiçao de frame pra frame da animaçao.

 

Essa função nos comentários acima, já estão carregando as imagens. Só que existe esse problema na transição dos frames, pois toda vez que ele troca, ele roda a funçao e carrega a imagem, daí tem um delay que fode a animação. Alguém sabe se essa minha idéia funciona. E como fazê-la em Action Script ??? pq eu não sei fazer ...

 

Obrigado. Agradeço qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo se ta tentando fazer um panorama?

estilos akelas cameras q mostra um local num angulo de 360º isso?

se sim, me desculpa a pergunta mais 360 fotos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use um XML no qual você vai passar todos os nomes dos arquivos a serem carregados...

Ou use uma array e passe todos os nomes

 

Depois disso feito crie um código com a classe MovieClipLoader e use o onloadInit() dessa classe

E vá carregando um por 1 e re chamando a função para carregar o proximo e assim vai

 

Após seu contador atingir o número máximo... você inicia a função...

Enquanto isso você pode fazer algo para o usuário ficar esperando... pq colocar um loader simples o usuario vai acha que da demorando d+... caso a net dlee seja ruim e vai sair do seu site...

 

Então crie coisas atrativas... para ele fazer enquanto espera.

 

E enquanto isso você vai carregando uma por uma

 

Exemplo disso???

Aqui:

Carregando imagens em sequencia

 

 

Abraços

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.