Comunidad de diseño web y desarrollo en internet online

Rompecabezas

Citar            
MensajeEscrito el 06 Jul 2009 06:09 pm
bueno dias

Estoy haciendo una aplicacion que es como un rompecabezas, es decir se arrastra un clip sobre el otro, el problema que tengo es que necesito que cadavez que que se cumpl la funcion me envie a otro frame, o que cuando acabe de poner todas las piezas en su lugar me envie a otrto frame distinto.....

este es el codigo que estoy usando

////////////////////////////////////////////////////////////////////////////////////
//VARIABLES

//Esta variable almacena el resultado del juego.
var correcto:Boolean = false;
//Almacena todos los clips de arrastre
var clips:Array = [drag1,drag2,drag3,drag4,drag5,drag6];
//Almacena los nombres de los clips de destino para los clips de arrastre
var destinos:Array = [hit1,hit2,hit3,hit4,hit5,hit6];


////////////////////////////////////////////////////////////////////////////////////
//FUNCIONES

//Función que se ejecuta al inicio y programa la escena
function Empezar(){
GuardarDatos();
ProgramarArrastres();
Corregir();
}

//Almacena los datos iniciales de los clips de arrastre como variables dentro de cada clip.
//Estos datos se utilizan despues para ver si se ha dejado sobre el destino, o para colocarlos de nuevo
//en su posición inicial
function GuardarDatos(){
for (var i = 0;i < clips.length; i++){
clips[i].xIni = clips[i]._x;
clips[i].yIni = clips[i]._y;
clips[i].destino = destinos[i];
clips[i].prof = clips[i].getDepth();
}
}

//Programa los clips de arrastre, añadiendo a cada uno los eventos onPress y onRelease
function ProgramarArrastres(){
for(var i = 0; i < clips.length; i++){
var clip = clips[i];
clip.onPress = function(){
startDrag(this,false);
this.swapDepths(getNextHighestDepth());
}
clip.onRelease = function(){
Soltar(this);
this.swapDepths(this.prof);
}
}
}

//Esta función se ejecuta cuando se reproduce el evento onPress de alguno de los clips de
//arrastre. Comprueba si el clip de arrastre está sobre su clip de destino, y si es así, lo
//coloca en la misma posición que este. Si no, lo devuelve a la posición inicial que se ha
//almacenado al principio.
function Soltar(clip){
clip.stopDrag();
if(clip.hitTest(clip.destino)){
clip._x = clip.destino._x;
clip._y = clip.destino._y;
}else{
clip._x = clip.xIni;
clip._y = clip.yIni;
}
Corregir();
}

//Corrige el juego. Recorre todos los clips de arrastre y ve si están colocados
//o no. Modifica los valores de los campos de texto Resuelto_txt y Aciertos_txt
//para mostrar los datos del juego.
function Corregir(){
var aciertos = 0;
for(var i = 0; i < clips.length; i++){
if(clips[i].hitTest(destinos[i])){
aciertos++;

if (corregir=true){
this.nextFrame();

}
}
}
}
//Empezamos
Empezar();
stop();

Por backdes

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2009 08:14 pm
Cuando vayas a postear códigos hazlo entre tags de ActionScript para poderlo leer:

Código :

[as]
Tus códigos aquí
[/as]


En cuanto a tu problema, veo que tienes una función que cuenta las fichas que están puestas bien y si están bien incrementa la variable "aciertos" sin embargo después no chequeas si esta variable aciertos coincide con el número de tus fichas, si haces esto te debería funcionar.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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