Comunidad de diseño web y desarrollo en internet online

if o while esta aqui la cuestion?

Citar            
MensajeEscrito el 13 Jul 2008 03:27 pm
hola a todos, solisito una ayudita.
tengo hecho un swf en el que arrastro los MC con el Mouse y los escalo al hacerle dole click
pero ahora quiero que que el doble click funcione tanto escalando como llamemosle desescalando.
Y no se como hacerlo. esa condicion que escribo en rojo es la que no se donde colar para que ande y me vuelva los clip a su estado normal, cuando estan escalados.
Desde ya gracias por cualquier aporte



onClipEvent (enterFrame) {
this.onRelease = function ()
{
if ((Number (getTimer () - ultimoClick) < 500) && (_root._xscale > 110)) {

this.stopDrag ();
this._xscale = 100;
this._yscale = 100;
this._x = 240;
this._y = 440;
this._rotation = -5;
}
};
}

onClipEvent (enterFrame) {
this.onPress = function ()
{
this.startDrag (c_web2);

this.swapDepths (0);

};

this.onRelease = function ()
{
if ((Number (getTimer () - ultimoClick) < 500) && (_root._xscale == 100)) {
// 500 tiempo en milisegundos del doble click
//Acciones a ejecutar en el dobleClick
this.stopDrag ();
this._xscale = 350;
this._yscale = 350;
this._x = 500;
this._y = 350;
this._rotation = 0;
} else {
ultimoClick = getTimer ();
//Acciones a ejecutar en el Click Simple
this.stopDrag ();
}
};
}

Por zumimoraes

83 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 03:34 pm
Creando otra condición mas:

Código :

this.onRelease = function ():Void {

   //---Doble clik cuando el movieclip este en escala 100
   
   if ((Number(getTimer()-ultimoClick)<500) && (_root._xscale == 100)) {
      
      this._xscale = 350;
      this._yscale = 350;
      
      this._x = 500;
      this._y = 350;
      
      this._rotation = 0;
   
   //---Doble clik cuando el movieclip este en escala 350
   } else if((Number(getTimer()-ultimoClick)<500) && (_root._xscale == 350)){
      
      this._xscale = 100;
      this._yscale = 100;
      
      this._x = xInicial;
      this._y = yInicial;
      
      this._rotation = 0;
   
   //Acciones a ejecutar en el Click Simple
   }else{
      
      ultimoClick = getTimer();
      
   }
   
   this.stopDrag();

}


Lo que no entiendo es porqué tienes el evento de onPress dentro de un onEnterFrame?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2008 04:02 pm
Lo vere otra ves, pero así fue mi primer intento y no me anda. tambien vi de agregar dentro otra if y nada.
Lo de onPress es necesario,no?
Lo que vi que se puede cambiar por load es enterframe, o sea onClipEvent (load) {
Perdon pero que significa :Void
asi lo tenia antes y no vuelve a su tamaño

onClipEvent (enterFrame) {
this.onPress = function ()
{
this.startDrag (c_web2);

this.swapDepths (0);

};

this.onRelease = function ()
{
if ((Number (getTimer () - ultimoClick) < 500) && (_root._xscale == 100)) {
// 500 tiempo en milisegundos del doble click
//Acciones a ejecutar en el dobleClick
this.stopDrag ();
this._xscale = 350;
this._yscale = 350;
this._x = 500;
this._y = 350;
this._rotation = 0;

} else if ((Number (getTimer () - ultimoClick) < 500) && (_root._xscale == 350)) {
this.stopDrag ();
this._xscale = 100;
this._yscale = 100;
this._x = 240;
this._y = 440;
this._rotation = -5;
} else {
ultimoClick = getTimer ();
//Acciones a ejecutar en el Click Simple
this.stopDrag ();
}
};
}

Gracias por la ayuda

Por zumimoraes

83 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 04:21 pm
El enterframe sobra no hace falta, ahí debe estar la clave de tu problema. Void indica que está función no devolverá ningún valor.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2008 04:29 pm
Debería quedar así, si estás programando encima del movie:

Código :

on (press) {
   
   this.startDrag();

   this.swapDepths(0);

}

on (release) {
   if ((Number(getTimer()-ultimoClick)<500) && (this._xscale == 100)) {
      // 500 tiempo en milisegundos del doble click
      //Acciones a ejecutar en el dobleClick
      this._xscale = 350;
      this._yscale = 350;
      this._x = 500;
      this._y = 350;
      this._rotation = 0;

   } else if ((Number(getTimer()-ultimoClick)<500) && (this._xscale == 350)) {
      
      this._xscale = 100;
      this._yscale = 100;
      this._x = 240;
      this._y = 440;
      this._rotation = -5;
   } else {
      //Acciones a ejecutar en el Click Simple

   }
   
   this.stopDrag();
   ultimoClick = getTimer();
}


El problema es que la condición decía if (_root._xscale == 100) y la escala del _root no se ha variado por lo tanto nunca pasaba por la segunda condición y además sobraba el enterframe.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2008 04:45 pm
Los objetos son Clips así que debera comensar por onClipEvent(-------); no?
Lo cambie a load y probe con todos, pero no funciona.
A menos que lo escribiera en el propio ftg , en ese caso si comienzo desde
this.onPress = function () etc etc
pero en ese caso ni se mueve.

Dios esto no camina....no se como pero me va a salir, por mis coj.....!!!

M.Gracias por las molestias

Por zumimoraes

83 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 13 Jul 2008 08:49 pm
Mira el código que te puse lo puedes copiar y pegar así mismo en tu movieClip, los movieClips solo deben comenzar sus eventos con onClipEvent, si vas a hacer un enterframe o un onload, entre otros, en este momento lo que quieres hacer es un onPress y un onRelease por lo tanto si estás programando encima del clip se pone:

Código :

on(press){
}

on(release){
}


si estás programando en el frame se pone:

Código :

this.elnombredelclip.onPress = function():Void{
}

this.elnombredelclip.onRelease = function():Void{
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2008 09:36 pm
Mil gracias por la ayuda. Lo acabo de pegar en un archivo nuevo y funciono perfectamente.
Y estoy descubriendo que si dejo el clip a 0º funciona pero si lo pongo a -5 que es como quiero que este ya no anda la programacion. Esto es muy raro, pero resolbible. La cosa es que anda.
Y perdona que no te entendi el mensaje anterior, pero creia que los clips debian empesar siempre con onClipEvent y on(Press) era de botones solamente.
Gracias otra ves por la ayuda e información

Por zumimoraes

83 de clabLevel



Genero:Masculino  

firefox

 

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