Ir para conteúdo

POWERED BY:

Arquivado

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

fabriciobzt

Sequencia de eventos e funções

Recommended Posts

Ola bom dia a todos,

 

Estou desenvolvendo uma página que que ira ter uma grande quantidade de eventos, tipo:

botao_01.addEventListener(MouseEvent.CLICK,carregar_01);

function carregar_01(e:MouseEvent):void{
	var jscommand:String = "window.open('pagina_01.html','win','height=178,width=302,toolbar=no,scrollbars=yes');"; 
	var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
	navigateToURL(url, "_self"); 
}

botao_02.addEventListener(MouseEvent.CLICK,carregar_02);

function carregar_02(e:MouseEvent):void{
	var jscommand:String = "window.open('pagina_02.html','win','height=178,width=302,toolbar=no,scrollbars=yes');"; 
	var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
	navigateToURL(url, "_self"); 
}
botao_03, botao_04 e assim por diante..

 

Existe alguma maneira de criar uma sequencia (como por exemplo um while) para executar esse codigo sem que haja necessidade de criar tudo na mão?

 

Desde ja obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá não sou uma programadora avançada mais estou fazendo um projeto parecido...

Depende de onde você ta criando este botoes...

 

Se for atraves de xml fica facil é só fazer um for...

 

Vou te dar um exemplo veja se ajuda... ;o)

 

 

var camisetaTRequest:URLRequest = new URLRequest
var camisetaTLoader:Loader
var tamanhoCamisetaT:uint
var camisetaTXMLRequest:URLRequest = new URLRequest ("arquivos_galerias/arquivos_futebol/transfer.xml")
var camisetaTXMLLoader:URLLoader = new URLLoader
camisetaTXMLLoader.load(camisetaTXMLRequest)
var camisetaTXML:XML
var camisetaT_mc:Sprite = new Sprite

function exibiCamisetasT  () {
	camisetaTXML = new XML (camisetaTXMLLoader.data)
	tamanhoCamisetaT = camisetaTXML.*.length()
	//	
	for (var i:uint=0; i<tamanhoCamisetaT; i++) {
		var novaCamisetaT:MovieClip = new MovieClip
		camisetaT_mc.addChild(novaCamisetaT)
		camisetas_mc.addChild(camisetaT_mc)
		with (novaCamisetaT) {
			camisetaTLoader = new Loader
			camisetaTRequest.url = "arquivos_galerias/arquivos_futebol/transfer/" + "/camisa" + (i +1)+ ".png"  
			camisetaTLoader.load(camisetaTRequest)
			//
			addChild(camisetaTLoader)
			camisetaTLoader.x = 320 * i
			camisetaTLoader.y = 0
			buttonMode = true
			addEventListener(MouseEvent.CLICK, clicouCustomisa)
		}
		//Criação dinamica de variavel dentro de MC
		novaCamisetaT.customisa = camisetaTXML.*[i].@url
	}
}

function clicouCustomisa (evt:MouseEvent) {
	paginaRequest.url = evt.currentTarget.customisa
	paginaLoader = new Loader()
	paginaLoader.load(paginaRequest)	
	//	
	animaPagina.startTransition ({type:Fade, direction:Transition.IN, duration:0.5, easing:Regular.easeOut})
		paginaLoader.x = 220
		paginaLoader.y = 257
		//
		conteinerPagina.addChild(paginaLoader)
		stage.addChildAt(conteinerPagina, 1)	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você mantiver o padrão para o nome dos botões fica fácil. Com um for você adiciona todos os listeners, e ainda define seu index (poderia usar substring dentro da função também, é um exemplo):

 

var qntBotoes:uint = 4;
for(var i:uint = 1; i<=qntBotoes; i++){
	var index:String;
	if(i < 10){
		index = '0'+i;
	}else{
		index = i.toString();
	}
	this['botao_'+index].addEventListener(MouseEvent.CLICK, carregar);
	this['botao_'+index].index = index;
}

isso pode ser simplificado, se você tirar o '0' nos nos nomes de botao menor que 10, bem como no nome dos arquivos.

 

depois, dentro da função, você usa esse atributo index que criamos para o MC:

 

function carregar_02(e:MouseEvent):void{
 var jscommand:String = "window.open('pagina_"+e.currentTarget.index+".html','win','height=178,width=302,toolbar=no,scrollbars=yes');"; 
 var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
 navigateToURL(url, "_self"); 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não conseguir fazer nenhuma das duas soluções, pode fazer uma unica funcao com um switch que testa o nome do botao que ta sendo clicado dai você um case pra cada botao, mas aconselho a usar a solucao da nati ou algo daquele tipo.

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.