Comunidad de diseño web y desarrollo en internet online

Arrastrar un clip de pelicula por encima de otro.

Citar            
MensajeEscrito el 08 Jul 2014 01:49 pm
Hola a todos

Estoy haciendo una actividad de arrastrar y soltar con varios clip de películas todos colocados en la misma capa y mismo fotograma, pues al arrastrar un clip de película cualquiera, me doy cuenta de que pasa por debajo de los otros clip de película lo que quiero es que al seleccionar cualquiera de ellos debería pasar por encima de los demás y no lo hace.

Código :

stop();
_global.cont = 0;
_global.desc = 0;
if (cont == 5)
{
    _global.aciertos++;
    gotoAndPlay(61);
    this._parent.btn_siguiente.enabled = true;
    pieza1_mc.enabled = false;
    pieza2_mc.enabled = false;
    pieza3_mc.enabled = false;
    pieza4_mc.enabled = false;
   pieza5_mc.enabled = false;
} // end if
if (desc == 5)
{
    _global.malos++;
    gotoAndPlay(61);
    this._parent.btn_siguiente.enabled = true;
    pieza1_mc.enabled = false;
    pieza2_mc.enabled = false;
    pieza3_mc.enabled = false;
    pieza4_mc.enabled = false;
   pieza5_mc.enabled = false;
} // end if
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;
   posX2 = pieza3_mc._x;
   posY2 = pieza3_mc._y;
   posX3 = pieza4_mc._x;
   posY3 = pieza4_mc._y;
   posX4 = pieza5_mc._x;
   posY4 = pieza5_mc._y;
}  
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);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza1_mc._x = dropZone1._x;
        pieza1_mc._y = dropZone1._y;
      pieza1_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      trace("regresando a "+posX+"/"+posY);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza1_mc._x = posX;
        pieza1_mc._y = posY;
    } // end else if
};
posX1 = pieza2_mc._x;
posY1 = pieza2_mc._y;
pieza2_mc.onPress = function (mouseDown)
{
    this.startDrag();
};
pieza2_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone2))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza2_mc._x = dropZone2._x;
        pieza2_mc._y = dropZone2._y;
        pieza2_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza2_mc._x = posX1;
        pieza2_mc._y = posY1;
    } // end else if
};
posX2 = pieza3_mc._x;
posY2 = pieza3_mc._y;
pieza3_mc.onPress = function (mouseDown)
{
    this.startDrag();
};
pieza3_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone3))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza3_mc._x = dropZone3._x;
        pieza3_mc._y = dropZone3._y;
        pieza3_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza3_mc._x = posX2;
        pieza3_mc._y = posY2;
    } // end else if
};
posX3 = pieza4_mc._x;
posY3 = pieza4_mc._y;
pieza4_mc.onPress = function (mouseDown)
{
    this.startDrag();
};
pieza4_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone4))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza4_mc._x = dropZone4._x;
        pieza4_mc._y = dropZone4._y;
        pieza4_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza4_mc._x = posX3;
        pieza4_mc._y = posY3;
    } // end else if
};
posX4 = pieza5_mc._x;
posY4 = pieza5_mc._y;
pieza5_mc.onPress = function (mouseDown)
{
    this.startDrag();
};
pieza5_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone5))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza5_mc._x = dropZone5._x;
        pieza5_mc._y = dropZone5._y;
        pieza5_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza5_mc._x = posX4;
        pieza5_mc._y = posY4;
    } // end else if
};


use el this.swapDepths(); pero los parámetros que les he colocado me generan muchos errores.

De antemano gracias por sus aportes.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jul 2014 12:22 pm
No veo swapDepths por ningún lado en el código, pero básicamente en el onPress tienes que usar

this.swapDepths(this.getNextHighestDepth())

Creo que era ese el comando para pillar el nivel mas alto, hace muuuuucho que no uso AS2, revisa la ayuda por las dudas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Jul 2014 05:52 pm
Hola solisarg

Coloque fue la programación que tenia originalmente, pero aqui le coloque el this.swapDepths(this.getNextHighestDepth())

Código :

posX = pieza1_mc._x;
posY = pieza1_mc._y;
pieza1_mc.onPress = function (mouseDown)
{
    this.swapDepths(this.getNextHighestDepth())
    this.startDrag();
};
pieza1_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone1))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza1_mc._x = dropZone1._x;
        pieza1_mc._y = dropZone1._y;
      pieza1_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      trace("regresando a "+posX+"/"+posY);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza1_mc._x = posX;
        pieza1_mc._y = posY;
    } // end else if
};


Al colocar el this.swapDepths(this.getNextHighestDepth()) el objeto que arrastro se duplica aquí le dejo el link para que vea mejor.

[/url] esta es la fuente

[url=http://www.mediafire.com/download/qub95cje0memprr/lengua000.swf]
esta la pelicula

Y bueno yo uso AS2 pues yo me dedico mas a desarrollar Software Educativos y mayormente uso el drag and drop, ejercicios de completación, mis animaciones no van orientadas a pagina web pero si me gustaria aprender AS3.

en los link esta el ejercicio donde tengo ese problema.

De antemano gracias.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jul 2014 06:48 pm
Los comandos que podrían duplicar son duplicateMovieClip o attachMovie, no veo ninguno de los dos, seguramente debe haber abajo una figura igual debajo (que si no cambias el nivel no ves) Otra opción es que estes jugando con la propiedad visible en algun lado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Jul 2014 11:20 pm
Hola Solisarg

Estuve revisando las lineas de programación y todo parece estar bien no tengo ninguna propiedad visible activa y tampoco tengo los comando duplicateMovieClip o attachMovie... Uno de los objetos a arrastrar tiene nombre de instancia pieza1_mc y debe encajar el otro objeto llamado dropzone1 respectivamente... en el momento que arrastro pieza1_mc y lo encajo en dropzone1 me vuelve aparecer pieza1_mc en su sitio de origen.

De antemano gracias por sus aportes.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jul 2014 11:21 pm
Por cierto solisarg felicidades por que argentina esta en la final

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 09 Jul 2014 11:29 pm
Vuelve a aparecer quiere decir en vez de quedar en dropZone se vuelve al origen, o aparece una nueva en el origen y ves dos piezas, en origen y en final?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jul 2014 01:45 am
[flash width=560 height=730]http://www.mediafire.com/download/qub95cje0memprr/lengua000.swf[/flash]

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Jul 2014 01:48 am
veo dos piezas una en origen y la otra en final (dropZone)

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Jul 2014 01:45 pm
Con la única que pasa es con la A ... fijate como estas metiendo la A ... si es manualmente en la línea de tiempo, fijate si no tenes un gotoAndPlay en donde vuelvas a pasar por donde la creas. De hecho no creo que tenga nada que ver con el swapDepths

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jul 2014 03:42 pm

Código :

posX = pieza1_mc._x;
posY = pieza1_mc._y;
pieza1_mc.onPress = function (mouseDown)
{
    this.swapDepths(this.getNextHighestDepth())
    this.startDrag();
};
pieza1_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
    if (this.hitTest(dropZone1))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza1_mc._x = dropZone1._x;
        pieza1_mc._y = dropZone1._y;
      pieza1_mc.enabled = false;
    }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      trace("regresando a "+posX+"/"+posY);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza1_mc._x = posX;
        pieza1_mc._y = posY;
    } // end else if
};


Tengo mc llamados pieza1_mc, pieza2_mc, pieza3_mc, pieza4_mc, pieza5_mc y ellos deben encajar en dropZone1, dropZone2, dropZone3, dropZone4 y dropZone5 respectivamente... todas tienen la misma programacion pero solo cambian el destino.

el this.swapDepths(this.getNextHighestDepth()) lo estoy probando en pieza1_mc nada mas...

Cuando arrastro el objeto pieza1_mc y lo coloco en dropZone1 automáticamente me manda al fotograma 2 donde aparece el texto "MUY BIEN" hasta llegar al fotograma 30 donde hay una acción:

Código :

gotoAndStop("inicio");


El cual lógicamente me manda de nuevo al fotograma 1. y justamente en el momento que me manda al fotograma 1 es cuando aparece el duplicado de pieza1_mc en su posición original.

Lo que pasa es que la profundidad apenas lo estoy probando con el mc pieza1_mc porque al yo arrastrarlo, pasa por debajo de los otros mc (pieza2_mc, pieza3_mc, etc..).

He revisado si hay un código mal puesto para ver si hay algún error pero la verdad no lo he visto es por ello que coloque el link tanto de la fuente como de la película para saber si alguien ve algo que yo no veo.

De ante mano gracias por sus aportes...

Nota acabo de probar this.swapDepths(this.getNextHighestDepth()) en los otros mc pero me da el mismo error.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Jul 2014 03:45 pm
No tienes que volver a ese fotograma, prueba volviendo al siguiente

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jul 2014 04:22 pm
lo probe volviendo al siguiente fotograma y nada

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Jul 2014 04:32 pm
Entonces tendrás que colocar los elementos via attachMovie en una funcion que no se vuelva a ejecutar, cuando se colocan manualmente las cosas y se vuelve a pasar por el fotograma en donde se crearon, suele haber conflictos con lo que programaste

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Jul 2014 04:37 pm
Bueno digamos que en eso estoy revisando cada linea de programación y haciendo modificaciones si doy con el problema lo publico...

de igual manera si hay otra observación me lo indica por favor

Gracias

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 16 Jul 2014 04:31 am
Hola

Bueno después de tanto averiguar y buscar por todos lados consegui en este post http://foros.cristalab.com/duda-con-swapdepths-t43314/[/url] la siguiente clase:

Código :

mx.behaviors.DepthControl.bringToFront(el_mc);


y la coloque aqui:

Código :

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


pieza1_mc.onPress = function(mouseDown){
   
   this.startDrag();
   mx.behaviors.DepthControl.bringToFront(pieza1_mc); //aquí
}
    
pieza1_mc.onRelease = function (mouseUp)
{
    this.stopDrag();
   if (this.hitTest(dropZone1))
    {
        cont+=1;
        gotoAndPlay(2);
      sonido = new Sound();
        sonido.attachSound("muy_bien");
        sonido.start();// reproducir sonido
        pieza1_mc._x = dropZone1._x;
        pieza1_mc._y = dropZone1._y;
      
   }
    else
    {
        desc+=1;
        gotoAndPlay(31);
      trace("regresando a "+posX+"/"+posY);
      sonido = new Sound();
        sonido.attachSound("vamos_amiguito");
        sonido.start();// reproducir sonido
        pieza1_mc._x = posX;
        pieza1_mc._y = posY;
    } // end else if
};


y me funciono a la perfección ya que tambien controla los niveles.

Gracias. Espero les sirva de ayuda a todos.

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 28 Ene 2015 12:45 am
Hola a todos. Soy una chica cubana con grandes aprietos por el flash ajaj. Me gustaria que me ayudaran. Estoy aprendiendo pero hay cosas que no logro. De programación no se casi nada. Intento hacer un juego de vestir usando el arrastre y pegado con hittest pero no lo logro. Se como arrastrarlo por el escenario pero quiero el efecto de cuando se pasa cerca del personaje se pegue en el sitio y sino se devuelva a su estado anterior. He probado varios codigos y ninguno funciona. Tambien quisiera saber como se hace para que queden guardados los cambios en el juego. Que hacer para tu personaje pase de una habitación a la otra guardando cambios en la ropa. Probe tambien codigos para movimiento del mar. Bueno son muchas mis dudas, les agradeceria que me ayudaran. Estoy aprendiendo sola con unos tutoriales que me han enviado .No tengo internet en casa pero a este correo me pueden escribir.

[email protected]

Por raulg12

1 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2015 01:12 pm
Hola

- Escribe tu pregunta en un hilo nuevo
- Considera hacer preguntas mas concretas dividiendo todo lo que tienes que hacer en cosas mas pequeñas sino más que una respuesta, hay que escribirte un tutorial

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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