Comunidad de diseño web y desarrollo en internet online

El objeto no regresa al sitio original (Drag and drop)

Citar            
MensajeEscrito el 25 Nov 2013 02:27 am
Hola a todos
Estoy realizando un juego de arrastrar y soltar, en el cual el ejercicio trabaja bien pero en una serie de pruebas que realice con ese ejercicio llega un momento en que el objeto no regresa al sitio original cuando el ejercicio es errado.

¿Como puedo hacer para minimizar ese error? ya que pieza1_mc deberia regresar a su posición inicial cuando el ejercicio es errado

Código :

stop ();
_global.cont = 0;
_global.desc = 0;
if (cont == 12)
{
    _global.aciertos2++;
    gotoAndPlay(61);
    this._parent.btn_siguiente.enabled = true;
    pieza1_mc.enabled = false;
    } // end if
if (desc == 12)
{
    _global.malos2++;
    gotoAndPlay(61);
    this._parent.btn_siguiente.enabled = true;
    pieza1_mc.enabled = false;
   } // end if
posX = pieza1_mc._x;
posY = pieza1_mc._y;
pieza1_mc.onPress = function (mouseDown)
{
    this.startDrag();
};
pieza1_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone1))
    {
        cont+=1;
        gotoAndPlay(2);
        pieza1_mc._x = dropZone1._x;
        pieza1_mc._y = dropZone1._y;
      pieza1_mc.enabled = false;
    }
    else
    {
        gotoAndPlay(31);
        desc+=1;
        pieza1_mc._x = posX;
        pieza1_mc._y = posY;
    } // end else if
};


donde pieza1_mc es el objeto a arrastrar y dropZone1 es el espacio donde pieza1_mc debe encajar, como indica la programación el estado inicial del objeto es:

Código :

posX = pieza1_mc._x;
posY = pieza1_mc._y;


y el estado del objeto cuando es errado el ejercicio es:

Código :

pieza1_mc._x = posX;
        pieza1_mc._y = posY;


De antemano gracias por sus aportes.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 25 Nov 2013 03:32 pm
Agrega un trace en el else en que regresa

trace("regresando a "+posX+"/"+posY);

Cada vez que regresa debería trazar lo mismo .... mira que pasa cuando no regresa, si traza otra cosa ... el código no parece muy estructurado y tiene cantidad de if, _global y _parent+flag, con lo cual es arduo de debuggear

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Nov 2013 12:07 am
Después de hacer la prueba en reiteradas ocasiones con el objeto estos fueron sus resultados:

en los 10 primeros intentos me dio esta ubicación que es la correcta:

regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55
regresando a 273.05/297.55

en los otros diez intentos cambio la ubicación
regresando a 601.05/309.55
regresando a 601.05/309.55
regresando a 601.05/309.55
regresando a 601.05/309.55
regresando a 601.05/309.55
regresando a 603.05/313.55
regresando a 603.05/313.55
regresando a 603.05/313.55
regresando a 603.05/313.55
regresando a 603.05/313.55

este ejercicio forma parte de un juego parecido a sopa de letras en donde el usuario debe ordenar las letras para formar la palabra:

[/url]

[url=http://rapidshare.com/share/591114E4DBEF8510C1D103DC4AE3BA4A]


Aquí le mando la fuente y la película

De antemano gracias.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 26 Nov 2013 06:35 am
Los objetos no regresan a su posición inicial porque en el fotograma 1 estas asignando las posiciones repetidamente (cada vez que termina de reproducirse un sonido regresas al fotograma 1), y si el sonido (reproducción de fotogramas) termina y aun no has soltado el objeto, el objeto tomara su posición actual como valor inicial.

Solucion 1: Inicializar las variables mediante una función una unica vez

Código ActionScript :

if(_global.ini==undefined) iniciar(); // como la función no esta definida se ejecutara "iniciar()"
function iniciar(){
   _global.ini = true; // se define variable para no ejecutar mas esta función
   posX = pieza1_mc._x;
   posY = pieza1_mc._y;
   posX1 = pieza2_mc._x;
   posY1 = pieza2_mc._y;
   ...
}


Solucion 2: Vincular y reproducir los sonidos en el código...
Vincular sonido: En biblioteca> sonido> clic derecho> propiedades> pestaña actionscript
Seleccionas "Exportar para actionscript" y le asignas un identificador con el cual lo llamaras en el codigo.

Código ActionScript :

sonido = new Sound();
sonido.attachSound("IDENTIFICADOR");
sonido.start();// reproducir sonido

:)

Por m4rk

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 26 Nov 2013 10:43 am
hola m4rk

Gran aporte que me haz hecho... hice varias pruebas y me funciona a la perfección

gracias

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 01 Dic 2013 11:57 pm
Hola m4rk

Luego de varias pruebas he minimizado los errores que se estaban presentado en los juegos... Pero se me ha presentado otro problema... Cuando coloco la programación para el sonido:

Código :

on(release){
   desc+=1;
        gotoAndPlay(31);
   sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
}


Y corro la película funciona a la perfección pero cuando corro todo el software completo no se escuchan dichos sonidos...
los juegos se ven en una pantalla principal por medio de mc vació.

¿Como puedo hacer para que se escuchen los sonidos 4en la película principal?

De antemano gracias por sus aportes.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome

 

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