Comunidad de diseño web y desarrollo en internet online

AS3 Problema con SCORE

Citar            
MensajeEscrito el 11 Jun 2014 11:51 pm
Hola soy principiante y estoy haciendo un juego, quiero que al hacer click sobre el enemigo vaya sumando Score, todo parece funcionar bien pero cuando pongo en el escenario 2 o 3 copias del enemigo cada uno suma independientemente... el Script esta dentro del Movieclip del enemigo.

se que esta mal poner score =0; (pero cuando lo saco deja de funcionar todo)
pero igual no vuelve a cero con cada enemigo sino que hace sumas independientes.

basicamente la pregunta es: ¿Como hago que se unifiquen todos los enemigos sumando un solo y unico SCORE?


var score =0;
Object(root).Panales_mc.scorecounter.text = score;

this.buttonMode = true;

this.addEventListener(MouseEvent.CLICK, Clicko);
function Clicko (event:MouseEvent):void {
score += 1;
Object(root).Panales_mc.scorecounter.text = score.toString();
}

Por CharlyPower

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Jun 2014 02:24 pm
Hola CharlyPower,
La declaración e inicialización de la variable score debes hacerla fuera del MC "enemigo". Debería de funcionarte entonces.

Saludos

Por manel.pi

71 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Jun 2014 09:39 pm

manel.pi escribió:

Hola CharlyPower,
La declaración e inicialización de la variable score debes hacerla fuera del MC "enemigo". Debería de funcionarte entonces.

Saludos





HOLA Manel.pi MUCHAS GRACIAS por contestar, te comento que
hice lo que me dijiste pero dejo de funcionar aqui te mando un resumen de lo que paso:

Esto tengo en el escenario:

var score = 0;
Object(root).Panales_mc.scorecounter.text = score;


y esto tengo en el MOVIECLIP:



var score =0;
Object(root).Panales_mc.scorecounter.text = score;

this.buttonMode = true;

this.addEventListener(MouseEvent.CLICK, Clicko);

function Clicko (event:MouseEvent):void {
score += 1;
Object(root).Panales_mc.scorecounter.text = score.toString();
}


Si saco el var score=0; del MovieClip como me dijiste deja de funcionar y me dice 3 veces:

acceso a una propiedad score no definida

yo ahora lo cambie por este codigo:


this.buttonMode = true;

this.addEventListener(MouseEvent.CLICK, Clicko);

function Clicko (event:MouseEvent):void {
Object(this.parent).Panales_mc.scorecounter.score += 1;
Object(root).Panales_mc.scorecounter.text = score.toString();
}

y el error: acceso a una propiedad score no definida me lo dice solo
una vez. y me marca el herror en la linea nº 8 que seria:


Object(root).Panales_mc.scorecounter.text = score.toString();

Por CharlyPower

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 13 Jun 2014 07:07 am
Hola CharlyPower,
Es normal que te dé accesoa una propiedad no definida porqué estás accediendo a la variable "score" de dentro del MC y no la has definido.
Te propongo lo siguiente fuera del MC:

Código ActionScript :

Panales_mc.scorecounter.text = "0";//inicializamos a 0 el valor del textfield donde muestras la puntuación

Dentro del MC:

Código ActionScript :

this.addEventListener(MouseEvent.CLICK, Clicko);
function Clicko (event:MouseEvent):void {
   var actualScore:Number = Number(Object(root).Panales_mc.scorecounter.text)//convierto en Number el valor del textfield "Panales_mc.scorecounter.text"
   actualScore = actualScore + 1;
   Object(root).Panales_mc.scorecounter.text = actualScore;
}

A ver si así te funciona. Revisa si me he colado con el nombre de alguna función, referencia o MC

Saludos

Por manel.pi

71 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jun 2014 11:46 pm

manel.pi escribió:

Hola CharlyPower,
Es normal que te dé accesoa una propiedad no definida porqué estás accediendo a la variable "score" de dentro del MC y no la has definido.
Te propongo lo siguiente fuera del MC:

Código ActionScript :

Panales_mc.scorecounter.text = "0";//inicializamos a 0 el valor del textfield donde muestras la puntuación

Dentro del MC:

Código ActionScript :

this.addEventListener(MouseEvent.CLICK, Clicko);
function Clicko (event:MouseEvent):void {
   var actualScore:Number = Number(Object(root).Panales_mc.scorecounter.text)//convierto en Number el valor del textfield "Panales_mc.scorecounter.text"
   actualScore = actualScore + 1;
   Object(root).Panales_mc.scorecounter.text = actualScore;
}

A ver si así te funciona. Revisa si me he colado con el nombre de alguna función, referencia o MC

Saludos





manel.pi Muchas Gracias! lo solucionaste... evidentemente yo estaba bastante perdido... lo sigo estando en realidad, que me recomiendas para leer respecto a AS3 ya sea un libro o pagina... algo que empiece de Cero porque la mayoria de los tutoriales dan por entendido que sabes la base de todo.


MUCHAS GRACIAS DE NUEVO :)

Por CharlyPower

1 de clabLevel



 

chrome

 

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