Comunidad de diseño web y desarrollo en internet online

arrastrar y soltar con puntuaje

Citar            
MensajeEscrito el 06 Mar 2012 03:02 pm
hola gente que tal me surgio otra duda en actionscript 3
y es que como seria hacer esto:

http://www.esedeerre.com/ejemplos/as2/arrastrar/arrastrar.swf

ya lo sabia hacer en actionscript 2 de hecho el codigo en actionscript 2 es

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

//Esta variable almacena el resultado del juego.
var correcto:Boolean = false;
//Almacena todos los clips de arrastre
var clips:Array = [Arrastre1_mc,Arrastre2_mc,Arrastre3_mc,Arrastre4_mc];
//Almacena los nombres de los clips de destino para los clips de arrastre
var destinos:Array = [Destino1_mc,Destino2_mc,Destino3_mc,Destino4_mc];


////////////////////////////////////////////////////////////////////////////////////
//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++;
}
}
correcto = (aciertos == clips.length)?true:false;
Resuelto_txt.text = correcto;
Aciertos_txt.text = aciertos;
}

//Empezamos
Empezar();

stop();



en actionscript 3 como seria la verdad no tengo ni la mas minima idea

Por sidentelrgamer

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2012 07:24 pm
version en as3

Código ActionScript :

import flash.events.MouseEvent;
////////////////////////////////////////////////////////////////////////////////////
//VARIABLES

//Esta variable almacena el resultado del juego.
var correcto:Boolean = false;
//Almacena todos los clips de arrastre
var clips:Array = [Arrastre1_mc,Arrastre2_mc,Arrastre3_mc,Arrastre4_mc];
//Almacena los nombres de los clips de destino para los clips de arrastre
var destinos:Array = [Destino1_mc,Destino2_mc,Destino3_mc,Destino4_mc];


////////////////////////////////////////////////////////////////////////////////////
//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];
   }
}

//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.addEventListener(MouseEvent.MOUSE_DOWN, clipPulsado);
      clip.addEventListener(MouseEvent.MOUSE_UP, clipSoltado);
   }
}

function clipPulsado (e: MouseEvent): void
{
   this.setChildIndex(MovieClip(e.target), this.numChildren-1);
   e.target.startDrag(false,this.getRect(this.stage));
}

function clipSoltado (e: MouseEvent): void
{
   e.target.stopDrag();
   Soltar(MovieClip(e.target));
}

//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: MovieClip)
{
   if(clip.destino.hitTestObject(clip))
   {
      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].hitTestObject(destinos[i]))
      {
         aciertos++;
      }
   }
   correcto = (aciertos == clips.length)?true:false;
   Resuelto_txt.text = correcto.toString();
   Aciertos_txt.text = aciertos.toString();
}

//Empezamos
Empezar();

stop();

Por Yonomimi

76 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 06 Mar 2012 07:36 pm
jajajaja si estuviera alli te daria un beso GRACIAS SOLUCIONASTE MIS DUDAS :D! >.<

Por sidentelrgamer

61 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Jul 2012 02:14 am
Hola!! buta les cuento que yo estoy realizando un juego de arrastre de personajes, y resulta que cuando logra con exito un acierto, quiero que aparezca un clip que pelicula que denomine "monito" el cual dise "bien! " pero no logro que al terminar el juego salga un clip que diga que Que bien lo lograste. Si alguien pudiese ayudarme se lo agradeceria mucho.
Dentro del codigo agregue una linea que dise lo que quiero expresar, pero no cuando logra terminarlo.

function Soltar(clip){
clip.stopDrag();
if(clip.hitTest(clip.destino)){
clip._x = clip.destino._x;
clip._y = clip.destino._y;
feedback.text="Bien Hecho!";
_root.monito.gotoAndPlay(2);

}else{
clip._x = clip.xIni;
clip._y = clip.yIni;
feedback.text="Animo! Intentalo denuevo";
}
Corregir();
}

Por wladimick

0 de clabLevel



 

chrome

 

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