Ir para conteúdo

POWERED BY:

Arquivado

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

Kanitar Oberst

LoadMovie como random em movieclips diferentes

Recommended Posts

Olá, Pessoal...

É o seguinte, estou quebrando a cabeça para achar uma solução para carregar 7 filmes em .swf, através de LoadMovie aleatoriamente em sete movieclips, já existentes...

 

Os movies estão como anuncio000.swf, anuncio001.swf, anuncio002.swf.... até o anuncio007.swf

 

Eu estou tentando algo neste sentido pelo AS:

 

x = 0;
while (x == 0) {
x = random(7);
}

loadMovie("anuncio00"+x+".swf", anuncio0);
loadMovie("anuncio00"+x+".swf", anuncio1);
loadMovie("anuncio00"+x+".swf", anuncio2);
loadMovie("anuncio00"+x+".swf", anuncio3);
loadMovie("anuncio00"+x+".swf", anuncio4);
loadMovie("anuncio00"+x+".swf", anuncio5);
loadMovie("anuncio00"+x+".swf", anuncio6);
loadMovie("anuncio00"+x+".swf", anuncio7);

 

Mas carrega apenas um filme, e quando colocal alguma coisa como "a = x+1" e substituo no codigo, também não dá certo, pois se ele sorteia o valor 7, e 7+1 não existe dá erro...

 

A ideia principal de tudo é que os anuncios aparecam aleatoriamente nos sete mc, sempre que carregados...

 

 

Para ver o arquivo basta dar uma olhadinha no http://www.vilhenano...s_peq/teste.htm

 

Quem puder me dar uma força...

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quer mais ou menos isso aqui:

 

var arr:Array = new Array();
for( var i = 0; i < 7; i++ ){
	x = random(7);
	setBanner(x, i);
}

function setBanner(x:Number, i:Number):void{
	if(!in_array(arr, x)){
		arr[].push()
		loadMovie("anuncio00"+x+".swf", "anuncio"+i);
	}else {
		x = random(7);
		setBanner(x, i);
	}
}

function in_array(array, search):Boolean {
	for (var i=0; i<array.length;i++)
	{
		if (array.indexOf(search) >= 0) return true;
		else return false;
	}
	return false;
};
Não testei mais é por ai

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, seria por ai...

Mas um probleminha... na linha 7(A type identifier is expected after the ':'.) e na 9 (Unexpected ']' encountered) tem um errinho de que eu não consegui me livrar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fugiu do curso Imagem Postada

function setBanner(x:Number, i:Number){ 	if(!in_array(arr, x)){ 	arr.push() 	loadMovie("anuncio00"+x+".swf", "anuncio"+i); 	}else { 	x = random(7); 	setBanner(x, i); 	}}
Array no flash n pode por [] logo depois do jeito que eu fiz que é errado... só funciona em php

 

E o : era o void que é as 3 em as 2 seria :Void

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

EHEHEHE....Não é questão de fugir do curso é q você é uma sumidade no AS que vai saber se não tah certo com o [] ....

 

Mas deu tudo certo, menos o carregamento do .swf nos mc correspondentes...

 

Aqui cada um tah instanciado no palco como anuncio0, anuncio1, anuncio2.... até anuncio7... e uma baixo da outra...

 

você viu o endereço: http://www.vilhenanoticias.com.br/anuncios_peq/teste.htm

 

 

Mas acho q deveria puxar normalmente para cada mc pelo for.... Mas a sumidade aqui és tu....

 

De qualquer forma, obrigado pela ajuda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

So assumidade nenhuma n Imagem Postada eu erro tbm e MUITO!!!!

 

tenta alterar ali no nome a ser carregado

troca o "anuncio"+i por anuncio+i por exemplo...

 

Faz um teste com trace()

anuncion+i

 

assim:

trace(anuncio+i)

 

Para ver se ele retorna _level0.anuncio0 etc da vida

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz

 

tah funcionando com o "anuncio"+i, mas tah repetindo alguns .swf...

 

Ele tah sorteando um .swf e jogando num mc tb sorteado... Mas ai não sei pq ele sorteia o mesmo .swf de novo...

 

Esse q tava sendo o problema

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vo explicar o código...

 

Talvez tu tenha alterado não sei:

function setBanner(x:Number, i:Number):void{ if(!in_array(arr, x)){ arr.push(x) loadMovie("anuncio00"+x+".swf", "anuncio"+i); }else { x = random(7); setBanner(x, i); }}function in_array(array, search):Boolean { for (var i=0; i<array.length;i++) { if (array.indexOf(search) >= 0) return true; else return false; } return false;};
Function in_array o que ela faz?

Ela faz a mesma coisa que o php faz, ela buscar se tem uma variavel dentro da array, se tiver retorna true... se não tiver retorna false.

 

setBanner

Ela contem 2 parametros, o X que vai ser enviado para dentro da array e o i que seria qual o mc que ela deve carregar.

 

O erro é que estava faltando no arr.push() o parametro para puxar para dentro da array Imagem Postada

que seria o x

 

Como no exemplo agora mostrado ficando arr.push(x);

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Berseck....

 

Eu tive q tirar o :Void no começo pq to usando o AS2

 

Mas com arr.push(x), ele tah carregando apenas o primeiro anuncio e deixa os outros mc em branco...

 

O código que estou usando é este:

 


var arr:Array = new Array();
for( var i = 0; i < 7; i++ ){ 
x = random(8); 

setBanner(x, i);}

function setBanner(x:Number, i:Number):Void{
 if(!in_array(arr, x)){
 arr.push(x)
 loadMovie("anuncio00"+x+".swf", "anuncio"+i);
 }else {
 x = random(7);
 setBanner(x, i);
 }
}

function in_array(array, search):Boolean {
 for (var i=0; i<array.length;i++)
 {
 if (array.indexOf(search) >= 0) return true;
 else return false;
 }
 return false;
}; 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom fiz de outra maneira... porque o indexOf() tava retornando undefined... e viva a m***** do AS 2 que nem saber buscar um valor em array n sabe...

 

var arr:Array = new Array();
var i = 0;

num = Math.round(Math.random()*8); 
setBanner(num, i);

function setBanner(num:Number, i:Number){
	if(in_array(arr, num) == false){
 		arr.push(num);
 		loadMovie("anuncio00"+x+".swf", "anuncio"+i);
		i++;
		if(i < 7){
			num = Math.round(Math.random()*8); 
			setBanner(num, i);
		}
 	}else {
 		num = Math.round(Math.random()*8); 
 		setBanner(num, i);
 	}
}

function in_array(array, search) {
 	for (var i = 0; i < array.length; i++)
 	{
		if (parseInt(array[i]) == search) return true;
 		else return false;
	}
 	return false;
}; 
Neste código não existe o 0

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu não ser mais chato do q já sou... Mas não resolveu, pq agora só aparece o ultimo anuncio...

 

Mas esse negocio é complicado mesmo... você quer q eu envie o . fla ?

 

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.