Ir para conteúdo

POWERED BY:

Arquivado

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

Derededs

duplicate movie clip

Recommended Posts

opa, beleza;

 

eu preciso carregar umas 60 imagens em uma pág em flash,

dai eu tenho um movie clip dentro desta pág q carrega uma imagem externa.

eu preciso saber como que eu faço para duplicar esse movie clip e cada movie clip duplicado carrege uma imagem.

por exemplo o primero movie clip carrega a "imagem1", o movie clip que será duplicado carrega "imagem2", numa sequencia.

tamém precisaria acertar a posição do movie clip duplicado em relação ao movie clip anterior.

 

alguem pode me ajudar?

valeeu

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara faz um xml contendo os nomes das imagens. Por exemplo:

 

<?xml version="1.0" encoding="utf-8"?>
<imagens>
	<imagem
		 nome="imagem1.jpg"
	/>
	<imagem
		 nome="imagem2.jpg"
	/>
	<imagem
		 nome="imagem3.jpg"
	/>
	....
</imagens>

Ai você carrega esse xml no flash:

 

var xml:XML = new XML();
xml.ignoreWhite = true;

//Deixa invisivel o MC duplicado, para não carregar duas imagens no mesmo lugar.
movieclip._invisible = false;

xml.onLoad = function() {
	for(var i=0; i < xml.firstChild.childNodes.length; i++) {
		 var mc:MovieClip = movieclip.duplicateMovieClip("imagem" + i, i);

		 //definindo a posição de cada movieclip duplicado, dai você define do geito melhor  
		  mc._x = 20 + i;
		  
		  //Holder é um movieclip onde será carregado a imagem
		  mc.holder.loadMovie("diretoriodaimagem/" + xml.firstChild.childNodes[i].attributes.nome;
	}
}
xml.load("arquivo.xml")

Praticamente é isso que você deve fazer.

Qualquer coisa tamo ae.

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa, valeu cara

funcionou direitinho,

 

eu precisava agora acha um jeito de coloca um limite de imagens por linha,

por exemplo, a cada 5 imagens carregadas ele muda a posição _y, deixando dai 5 imagens por linha.

não sei se tem como fazer isso.

mais se tiver.

 

valeeu

abraaços

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok lá vai.

 

Na função abaixo acrecente as seguintes linhas

 

var xml:XML = new XML();

xml.ignoreWhite = true;

 

//Deixa invisivel o MC duplicado, para não carregar duas imagens no mesmo lugar.

movieclip._invisible = false;

 

xml.onLoad = function() {

 

var linha:Number = 0;

var coluna:Number = 0;

 

for(var i=0; i < xml.firstChild.childNodes.length; i++) {

var mc:MovieClip = movieclip.duplicateMovieClip("imagem" + i, i);

 

//definindo a posição de cada movieclip duplicado, dai você define do geito melhor

mc._x = 20 + i;

 

//Holder é um movieclip onde será carregado a imagem

mc.holder.loadMovie("diretoriodaimagem/" + xml.firstChild.childNodes.attributes.nome;

 

if (i % 5 == 0 && i != 0) {

linha++;

coluna = 0;

}

mc._x = coluna * 50;

mc._y = linha * 50;

coluna++;

}

}

xml.load("arquivo.xml")

 

---------------------------

 

Nessa linha if (i % 5 == 0 && i != 0) { o número cinco representa quantas fotos você quer que apareça antes dele mudar a posição do Y http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

eae lucas, beleza?

 

cara preciso de mais uma ajuda aqui,

eu preciso fazer com q cada imagem carregada tenha um link para um site.

por exemplo quando eu clico na imagem1 abre o site da imagem1, quando na imagem2 abre o site da imagem2...

 

eu fiz o seguinte,

dentro do arquivo XML tem o seguinte codigo:

 

<?xml version="1.0" encoding="iso-8859-1"?>

<clientes>

<foto imagem="clientes/imagem1.jpg" caminho="http://www.imagem1.com.br"/>

<foto imagem="clientes/imagem2.jpg" caminho="http://www.imagem2.com.br"/>

<foto imagem="clientes/imagem3.jpg" caminho="http://www.imagem3.com.br"/>

...

</clientes>

 

no Flash, dentro da function xml.onLoad eu coloco assim:

 

mc.holder.onRelease = function(){

getURL(xml.firstChild.childNodes.attributes.caminho,"_blank");

}

 

onde iria clicar no holder q carrega a imagem e abrir uma url com oq tem dentro de caminho na linha correspondente ao i

mais é como se não tivesse colocado nenhuma ação para o holder, assim quando coloco apenas o mc para receber a ação que seria dada ao holder,

funciona e abre o link, mas como as fotos estão todas dentro do mc, todas as fotos ficam com o mesmo link.

 

resumindo:

o problema é colocar um link na imagem carregada,

se tiver outro jeito,

 

valeeu,

abraaços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Derededs vamos voltar para o código no flash na parte em que ele chama o xml:

 

Você deve atribuir uma variavel que pegue o valor de cada link, assim:

 

var indice:Number

var xml:XML = new XML();

xml.ignoreWhite = true;

 

//Deixa invisivel o MC duplicado, para não carregar duas imagens no mesmo lugar.

movieclip._invisible = false;

 

xml.onLoad = function() {

 

var linha:Number = 0;

var coluna:Number = 0;

 

for(var i=0; i < xml.firstChild.childNodes.length; i++) {

var mc:MovieClip = movieclip.duplicateMovieClip("imagem" + i, i);

 

//definindo a posição de cada movieclip duplicado, dai você define do geito melhor

mc._x = 20 + i;

mc.indice = indice;

indice++

 

//Holder é um movieclip onde será carregado a imagem

mc.holder.loadMovie("diretoriodaimagem/" + xml.firstChild.childNodes.attributes.nome;

 

if (i % 5 == 0 && i != 0) {

linha++;

coluna = 0;

}

mc._x = coluna * 50;

mc._y = linha * 50;

coluna++;

}

}

xml.load("arquivo.xml");

 

Muito bem feio isso no código, vamos até o MC que está sendo duplicado, dai dentro dele coloque assim:

 

this.onRelease = function() {

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok Derededs vamos voltar para o código no flash na parte em que ele chama o xml:

 

Você deve atribuir uma variavel que pegue o valor de cada link, assim:

 

var indice:Number

var xml:XML = new XML();

xml.ignoreWhite = true;

 

//Deixa invisivel o MC duplicado, para não carregar duas imagens no mesmo lugar.

movieclip._invisible = false;

 

xml.onLoad = function() {

 

var linha:Number = 0;

var coluna:Number = 0;

 

for(var i=0; i < xml.firstChild.childNodes.length; i++) {

var mc:MovieClip = movieclip.duplicateMovieClip("imagem" + i, i);

 

//definindo a posição de cada movieclip duplicado, dai você define do geito melhor

mc._x = 20 + i;

mc.indice = indice;

indice++

 

//Holder é um movieclip onde será carregado a imagem

mc.holder.loadMovie("diretoriodaimagem/" + xml.firstChild.childNodes[indice].attributes.nome;

 

if (i % 5 == 0 && i != 0) {

linha++;

coluna = 0;

}

mc._x = coluna * 50;

mc._y = linha * 50;

coluna++;

}

}

xml.load("arquivo.xml");

 

Muito bem feito isso no código, vamos até o MC que está sendo duplicado, dai dentro dele coloque assim:

 

this.onRelease = function() {
	//Coloque quantos _parent precisarem para chegar no nivel onde esta o código que chama o xml

	_parent.indice = indice;
	getURL(_parent.xml.firstChild.childNodes[indice].attributes.caminho, "_blank");
}

 

É pra ser mais ou menos assim http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Tenta ai e fale se precisar de algo

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

intao lucas,

acho o flash não tá achando o valor do indice

 

quando troco o valor "i" pelo "indice" aqui:

 

mc.holder.loadMovie(xml.firstChild.childNodes.attributes.imagem);

 

ele dá o caminho como indefinido.

quando eu coloco o valor de indice = i

ele acha o caminho.

 

dentro do movie clip duplicado eu coloquei as action,

mas também parece que não está achando o valor do indice,

pois quando coloco o um o número da linha do xml ele abre o site.

 

valeu.

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara desculpa quando citei a: var indice:Number eu esqueci de colocar o número zero.

 

Troque isso:

var indice:Number

Por isso:

var indice:Number = 0;

Agora é para funcionar, é que não definindo que o valor dele é zero ele não adiciona a número nenhum http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Desculpe o erro, espero que funcione agora.

 

 

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.