Comunidad de diseño web y desarrollo en internet online

Anular Drag de un Mc

Citar            
MensajeEscrito el 20 Dic 2007 02:57 am
Hola, estoy haciendo una animacion donde al presionar un boton un mc se puede mover por el escenario con starDrag, hasta ahi bien, pero quiero que al volver a pulsar el boton la funcion starDrag se anule por completo y se vuelva accionar cuando pulse el boton otra vez ¿ Como podria hacerlo ?. Gracias.

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

firefox
Citar            
MensajeEscrito el 20 Dic 2007 03:22 am

  1. Crea una variable de tipo Boolean, con valor false.
  2. En el evento onRelease, evalúas la variable, si es verdadero que haga startDrag(), de lo contrario, stopDrag()
  3. Cambias el valor de la variable: variable = !variable

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 20 Dic 2007 11:37 am
no entiendo muy bien yo he introducido una variable pero numerica. el codigo es el siguiente.

Código :

btn_drag.onPress = function() {
this.gotoAndStop(2);
if (this.pos == 1 ) {
revista.onPress = function(){
this.startDrag();
 }
revista.onRelease = revista.onReleaseOutside = function() {
this.stopDrag();
 }
this.pos = 2;
}else{
this.gotoAndStop(1);
revista.stopDrag();
 }
}

El botón que hace que el mc sea dragable es un mc con dos frames, en el primer frame es dode lleva la variable numerica

Código :

pos=1;

Pero no funciona no se yo quero que el mc en la segunda posicion del boton no sea dragable, ya que este contiene en su interio botones que quedan inactivos al estar la funcion starDrag.

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

firefox
Citar            
MensajeEscrito el 20 Dic 2007 04:04 pm
Antes que nada, no lo pude probar porque no estoy en la pc de mi casa, disculpa si no funciona correctamente....

Creo que deberias cancelar el segundo frame y hacer algo por el estilo

Código :

btn_drag.onPress = function() {
   //this.gotoAndStop(2);
   var pos:Number = 1;
   
   if (pos==1){
      revista.onPress = function(){
         this.startDrag();
         pos = 2;
      }
      revista.onRelease = revista.onReleaseOutside = function() {
         this.stopDrag(); 
         pos = 2;
      }
   }else{
         //this.gotoAndStop(1);
         revista.stopDrag();
         pos = 1;
      }
   }//cierra if
}//cierra function

En cada uno de los clicks segun cual sea cambia la variable pos, si es 1 hace el drag si es 2 hace el stop.
Deberia probarlo y en todo caso ir cambiando el numero de pos, segun tu preferencia, espero que te sirva Slds

Por Creattive

120 de clabLevel

1 tutorial

Genero:Masculino  

Adobe AIR/Flex developer

msie
Citar            
MensajeEscrito el 20 Dic 2007 04:35 pm
Hola CREATTIVE siento comunicarte que no funciona, pienso que debe de haber alguna manera de anular el drag, pero no la conosco, la verdad que es una aplicacion que he visto muchass veces pero no se como conseguirlo, seguiré trabajando a ver si lo logro, si se te ocurre otra idea comunicamela. Muchas Gracias por tu aporte. Feliz Navidad.

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

firefox
Citar            
MensajeEscrito el 20 Dic 2007 04:53 pm
Ah se me olvido aqui os dejo el FLA. Gracias.

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

firefox
Citar            
MensajeEscrito el 21 Dic 2007 05:37 pm
Bueno poco a poco con vuestra ayuda y mis largas horas de cafe y tabaco he conseguido esto pero todavia si os fijais en el boton de la cruz que es el que activa el drag cuando lo desactivamos sige la zona del mc activa y no me funcionan los botones que pasan las paginas, no se como resolverlo, he echo ya casi de todo. Una ayudita por favor...

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

firefox
Citar            
MensajeEscrito el 21 Dic 2007 06:10 pm
Intenta con un switch en tu caso puede servir bastante porque son dos cosas para un mismo clic (del boton).

Código :

var activado:Number = 1;
var pos:Number = 1;

btn_drag.onPress = function() {
   activado++;
        // generamos el switch y le ponemos el limite para que se reinicie
   if (activado>1) {
      activado = 0;
   }
   switch (activado) {
      case 0 :
         this.gotoAndStop(2);
         var pos:Number = 1;
         break;
      case 1 :
         this.gotoAndStop(1);
         var pos:Number = 0;
         break;
   }
   ///
        // Comprobamos que valor está activado en la variable "pos"
   if (pos == 1) {
      
      revista.onPress = function() {
         this.startDrag();
         updateAfterEvent();
      };
      revista.onRelease = revista.onReleaseOutside=function () {
         this.stopDrag();
      };
   } else {
      // con delete suprimimos por completo las funciones del boton
      delete revista.onPress;
      delete revista.onRelease;
      delete revista.onReleaseOutside;
   }
};//cierra function

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 21 Dic 2007 06:13 pm
el updateAfterEvent(); no lo necesitabas, jejejeje

Por vcomics

217 de clabLevel



 

Medellin - Colombia

firefox
Citar            
MensajeEscrito el 22 Dic 2007 01:11 am
Feliz 2008 y si nos ayudan gente como tu seguro que aprendemos. Gracias mil. Ahora con tu código funciona perfectamente.

Por byweb

118 de clabLevel



Genero:Masculino  

Lucena (Córdoba)

msie7

 

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