Comunidad de diseño web y desarrollo en internet online

problema puntuaje al hacer clic

Citar            
MensajeEscrito el 03 May 2012 12:04 am
tengo 24 movieclips en un fotograma y cada uno lo puse como un boton (buttonMode = true;) y los nombre d1,d2,d3... etc... arriba de ellos puse un texto dinamico al cual nombre aciertos
estoy intentando que al dar clic sobre ellos aparescan aciertos en el texto dinamica hasta ahora llevo esto:


d1.addEventListener(MouseEvent.CLICK, abv);
d2.addEventListener(MouseEvent.CLICK, abv);
d3.addEventListener(MouseEvent.CLICK, abv);
d4.addEventListener(MouseEvent.CLICK, abv);
d5.addEventListener(MouseEvent.CLICK, abv);
d6.addEventListener(MouseEvent.CLICK, abv);
d7.addEventListener(MouseEvent.CLICK, abv);
d8.addEventListener(MouseEvent.CLICK, abv);
d9.addEventListener(MouseEvent.CLICK, abv);
d10.addEventListener(MouseEvent.CLICK, abv);
d11.addEventListener(MouseEvent.CLICK, abv);
d12.addEventListener(MouseEvent.CLICK, abv);
d13.addEventListener(MouseEvent.CLICK, abv);
d14.addEventListener(MouseEvent.CLICK, abv);
d15.addEventListener(MouseEvent.CLICK, abv);
d16.addEventListener(MouseEvent.CLICK, abv);
d17.addEventListener(MouseEvent.CLICK, abv);
d18.addEventListener(MouseEvent.CLICK, abv);
d19.addEventListener(MouseEvent.CLICK, abv);
d20.addEventListener(MouseEvent.CLICK, abv);
d21.addEventListener(MouseEvent.CLICK, abv);
d22.addEventListener(MouseEvent.CLICK, abv);
d23.addEventListener(MouseEvent.CLICK, abv);
d24.addEventListener(MouseEvent.CLICK, abv);

function abv(event:MouseEvent):void
{
total++;
aciertos.text = 'aciertos = '+total;
}

no se cual es el error de hecho no me marca error pero no funciona :S no se si alguien me pueda ayudar

de antemano gracias =D

Por sidentelrgamer

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 May 2012 05:47 am
inicializate total??

Código ActionScript :

...
total = 0;
...




Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 03 May 2012 08:20 am
Hola sidentelrgamer, ¿no te sería más sencillo y mejoraría el rendimiento si configuraras un sólo listener para todos los botones?

Código ActionScript :

import flash.events.MouseEvent;
import flash.events.Event;

stage.addEventListener(MouseEvent.MOUSE_UP, detectar);

function detectar (e:Event) {
   var miStage = e.currentTarget;
   trace(miStage); //Te devuelve el stage
   
   var miMC = e.target;
   trace(miMC); //Te devulve el objeto que hay bajo el mouse
   trace(miMC.name); //Te devuelve el nombre del objeto
}
Si lo hicieras así, tendrías el listener en stage y este estaría captando como target al mc que tenga debajo, después ya haces lo que necesites, una criba con un if o lo que se te ocurra.

Un saludo.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 03 May 2012 01:14 pm
tienes razon eso acorta mucho mi codigo y ya le agrege lo de total++

import flash.events.MouseEvent;
import flash.events.Event;

stage.addEventListener(MouseEvent.MOUSE_UP, detectar);

function detectar (e:Event) {
var miStage = e.currentTarget;
trace(miStage); //Te devuelve el stage
total++;
aciertos.text = 'aciertos = '+total;

var miMC = e.target;
trace(miMC); //Te devulve el objeto que hay bajo el mouse
trace(miMC.name); //Te devuelve el nombre del objeto
}

if(total == 5)
{
fscommand("quit");
}

pero el problema es que me sigue sin funcionar el problema por el ke venia =(

Por sidentelrgamer

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 May 2012 01:18 pm
¿Has probado lo que te dijo exekiel21?

exekiel21 escribió:

inicializate total??

Código ActionScript :

...
total = 0;
...

Saludos
eXe
Saludos.

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 03 May 2012 02:13 pm
a claro disculpa no habia visto esa respuesta :S de hecho yo lo tengo asi:

var total:int = 0;

Por sidentelrgamer

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 May 2012 02:37 pm
Yo lo he probado y me funciona, he hecho varias funciones en vez de 1, pero es lo mismo. Te dejo el código comentado:

Código ActionScript :

import flash.events.MouseEvent;
import flash.events.Event;

var total:int = 0;

stage.addEventListener(MouseEvent.MOUSE_UP, detectar);

function detectar (e:Event):void {
   //Primero preguntamos si el objetivo del click es un moviClip
   //Si lo es pasamos su nombre a la función cribar
   if (e.target is MovieClip) {
      cribar(e.target.name)
   }
}

function cribar (nombre:String):void {
   //Chequeamos si la primera letra del mc es una 'd' y si la segunda es un número
   if (nombre.substr(0, 1) == 'd' && parseInt(nombre.substr(1, 1)) is Number) {
      //Si lo es, lanzamos sumarTotal
      sumarTotal()
   }
}

function sumarTotal ():void {
   //Y aquí hacemos la comprobación
   //Si total es mayo o igual a 5
   if(total >= 5) {
      fscommand("quit")
   }
   //Si no lo es
   else {
      total++;
      //Suponiendo que tengas un textField en el escenario llamado aciertos
      //Que sea tipo, dinámico y que tenga la tipo incrustada
      //Te debería cambiar el texto
      aciertos.text = 'aciertos = '+total;
   }
}


Un saludo

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome
Citar            
MensajeEscrito el 03 May 2012 04:39 pm
muchas gracias por sus respuestas y su paciencia ya lo logre resolver lo que pasa que le texto dinamico estaba deentro del movieclip que contenia todos los demas movieclips y esos movieclips estaban en movimiento entonces saque el texto dinamico y afuera hice las acciones de total y el texto dinamico y vuala XD funciono =D

gracias

Por sidentelrgamer

61 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.