Foros del Web » Creando para Internet » Flash y Actionscript »

por favor ¿que falla en este simple arrastre?

Estas en el tema de por favor ¿que falla en este simple arrastre? en el foro de Flash y Actionscript en Foros del Web. Hola foros, Tengo un mc que quiero que cambie su altura siguiendo el mouse pero dentro de una condición (que solo lo haga cuando esté ...
  #1 (permalink)  
Antiguo 05/05/2008, 09:37
 
Fecha de Ingreso: febrero-2007
Ubicación: Mollerussa
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 1
por favor ¿que falla en este simple arrastre?

Hola foros,
Tengo un mc que quiero que cambie su altura siguiendo el mouse pero dentro de una condición (que solo lo haga cuando esté entre dos coordenadas "y"). Lo que hago funciona mientras no sobrepase los limites, en el momento en que lo hago se acabó, ya no se mueve. ¿Donde está el fallo, por favor?
Os mando el código
Cita:
mc_1.onPress = function() {
onEnterFrame = function () {
if (mc_1._height<300 && mc_1._height>25) {
mc_1._height = _ymouse;
}
}
};
mc_1.onRelease = function() {
delete onEnterFrame;
};
Gracias
  #2 (permalink)  
Antiguo 05/05/2008, 10:24
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Re: por favor ¿que falla en este simple arrastre?

Código:
if (mc_1._height<300 && mc_1._height>25)
A ver aqui dice que si es menor que 300 y mayor que 25, no entiendo. Hasta 300 siempre va a ser mayor que 25, además cuando llegue a 300 se detiene el if.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #3 (permalink)  
Antiguo 05/05/2008, 10:41
 
Fecha de Ingreso: febrero-2007
Ubicación: Mollerussa
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 1
Re: por favor ¿que falla en este simple arrastre?

me refiero a que el arrastre se ha de poder hacer mientras la medida sea mayor de 25 y menor de 300 si sobrepasa una de las dos se deberia de parar
  #4 (permalink)  
Antiguo 05/05/2008, 12:11
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Re: por favor ¿que falla en este simple arrastre?

Ok loponti.
Por más que sea mayor que 300, también va a seguir siendo mayor a 25, no se va a detener.
Cuando este por debajo de 25, va a seguir siendo menor a 300, no se va a detener.
Pensa tu if de forma tal que los rangos contenedores, (300,25) no se "choquen".
Quizas deberias plantearlo al revés.
Si es mayor a 300 ó menor a 25, que se detenga, sino que ejecute el script.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #5 (permalink)  
Antiguo 05/05/2008, 14:25
 
Fecha de Ingreso: febrero-2007
Ubicación: Mollerussa
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 1
Re: por favor ¿que falla en este simple arrastre?

De momento he hecho un parche que me resulta pero miraré de hacerlo de esta manera,

Gracias
  #6 (permalink)  
Antiguo 06/05/2008, 02:39
 
Fecha de Ingreso: agosto-2004
Mensajes: 67
Antigüedad: 13 años, 4 meses
Puntos: 0
Re: por favor ¿que falla en este simple arrastre?

Que tal, primero quiero decir que la condicion del if:
Código PHP:
if (mc_1._height<300 && mc_1._height>25
Es correcta, ya que && es un AND por lo tanto ambas condiciones deben cumplirse este detalle se le paso a radarcba que creo que interpreto que era un OR donde si alguna de las dos se da, da verdadero, entonces nunca pararia.
Aclaro que es simplmente una critica constructiva y no criticar a radarcba que puso parte de su tiempo para aportar al foro.

Ahora con respecto a que despues no hace mas nada es logico en tu if le decis que una vez que llegue a alguna de esas medidas no haga mas nada y aunque vuelvas el mouse dentro de las coordenadas cuando entre a la funcion el mc_1._height ya va a estar en 300 o en 25.
No se a que te referis con un parche pero lo que se me ocurre es que al entrar a la funcion o cuando sale de la funcion por la condicio del if preguntes si mc_1._height =300 le restes 0,1 y si mc_1._height = 25 le sumes 0,1 y ahi te va a arrancar la funcion, quedaria asi:
Código:
mc_1.onPress = function() {
//aca es donde al volver a activar la funcion antes del enterframe le resto o 
//sumo para que me tome la condicion
if(mc_1._height==300){
mc_1._height=-0,1;}

if(mc_1._height==25){
mc_1._height=+0,1;}

onEnterFrame = function () {
if (mc_1._height<300 && mc_1._height>25) {
mc_1._height = _ymouse;
}
}
};
Esa seria al entrar a la funcion sino:
Código:
mc_1.onRelease = function() {
delete onEnterFrame;

if(mc_1._height==300){
mc_1._height=-0,1;}

if(mc_1._height==25){
mc_1._height=+0,1;}
};
Aca seria al terminar el enterframe, fijate si alguna de estas dos te sirve, yo me quedo con la primera, calculo que no es lo mejor pero deberia andar, cualquier cosa decinos.

Hasta luego.

El Duende.
  #7 (permalink)  
Antiguo 10/05/2008, 11:43
 
Fecha de Ingreso: febrero-2007
Ubicación: Mollerussa
Mensajes: 99
Antigüedad: 10 años, 10 meses
Puntos: 1
Re: por favor ¿que falla en este simple arrastre?

Hola Duende y radarcba,
En respuesta a Duende he de decir que teoricamente deberia funcionar pero por alguna razón que no alcanzo a comprender se pasa de 300 (nunca en el mismo sitio) y se fastidia todo.
Lo he hecho de esta manera funciona, pero el delete onEnterFrame falla (en el tuyo también) y no sé porque ¿se te ocurre algo?
Cita:
mc_2.onPress = function() {
onEnterFrame = function () {
if (mc_2._height<300 && mc_2._height>25) {
mc_2._height = _ymouse;
}
if (mc_2._height>=300) {
mc_2._height = 299;
}
if (mc_2._height<=25) {
mc_2._height = 26;
}
resposta = mc_2._height;
};
};
mc_2.onRelease = function() {
delete mover();
};
Gracias por vuestro interés
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:02.