Comunidad de diseño web y desarrollo en internet online

Problema con coordenadas y Mcs

Citar            
MensajeEscrito el 04 Oct 2007 10:30 pm
Hola:
Tengo esta página web en la que necesito que el cuadro de contenido se despliegue cuando el item llega a la coordenada (y) superior. El problema es que lo hace apenas comienza el desplazamiento. He probado de varioas maneras condicionar esa acción pero nada causa el efecto que deseo.
El código que uso en el primer frame es:

Código :

stop();
//coordenadas superiores
_global.hx=169;
_global.vy=217;

//Botón diseño
diseño.btn_diseño.onRelease = function() {
   diseño.x=hx;
   diseño.y=vy;
   if(diseño.y=vy){//aquí intento condicionar la animación del cuadro de contenido
   contenido.play();
   }
   var b=1;
   arq.mcarqui.play();
   ing.mcingenieria.play();
   artegraf.mcartegrafica.play();
   producgraf.mcproducciongrafica.play();
   webdesign.mcdiseñoweb.play();
   gente.mcteam.play();
   mail.mccontacto.play();
   thanks.mcgracias.play();
}

//Diseño desplazado

if(diseño.y=vy){ //aquí intento condicionar la animación del cuadro de contenido
diseño.btn_diseño.onPress = function() {
   contenido.play();
   diseño.x=169;
   diseño.y=253;
   var b=2;
   arq.mcarqui.play();
   ing.mcingenieria.play();
   artegraf.mcartegrafica.play();
   producgraf.mcproducciongrafica.play();
   webdesign.mcdiseñoweb.play();
   gente.mcteam.play();
   mail.mccontacto.play();
   thanks.mcgracias.play();
   arq._visible=true;
   ing._visible=true;
   artegraf._visible=true;
   producgraf._visible=true;
   webdesign._visible=true;
   gente._visible=true;
   mail._visible=true;
   thanks._visible=true;
      }
}

Dentro del botón Design que es un Mc está este código:

Código :

onClipEvent(load){
   if (b=1){
   x=169;
   _x=169;
   y=253;
   _y=253;
   }
onClipEvent(enterFrame){
   _x+=(x-_x)*0.3;
   _y+=(y-_y)*0.3;
}


El problema es que la variable y=vy ya tiene el valor que activa la animación del cuadro de contenido antes de que el botón Design llegue a la coordenada y=vy que sería 217. He probado varias formas pero el resultado es siempre el mismo. Espero me haya explicado bien.
Saludos

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 04 Oct 2007 10:32 pm
Fe de erratas:
Tengo esta página web en la que necesito que el cuadro de contenido se despliegue cuando el item llega a la coordenada y superior.
La puse entre paréntesis y salió un emoticón optimista... :lol: :lol: :lol:

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 04 Oct 2007 10:43 pm
El signo "igual que" es "==", no "="

Código :

[...]
if(diseño.y == vy)
[...]


Hay que dormir más, Nito... :lol:

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 04 Oct 2007 10:49 pm
Muchas gracias por responder tan rápido. :)
Si ya lo había probado, pero el resultado es el mismo.
Lo acabo de subir con esa opción para que lo veas.

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 04 Oct 2007 11:03 pm
Ok, fíjate que justo del if que te comentabas colocas:

Código :

diseño.y=vy;

Lógicamente el if siempre va a dar true. En cualquier caso, creo que la comparación debes hacerla con la propiedad "_y" y no con la variable y, o sea:

Código :

if(diseño._y == vy)

Corrígeme si me equivoco.

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 04 Oct 2007 11:14 pm
Lo subí con esa modificación que me acabas de indicar y funciona del mismo modo. :crap:

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 04 Oct 2007 11:43 pm
También lo probé con

Código :

[...]
if(diseño._y=vy)

[...]
Pero pierde el easing al subir, es raro porque es solo una comparación entre coordenada y variable.
Lo subo así para que se vea que efecto causa esa modificación.

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 05 Oct 2007 02:04 am
Desde luego está raro... ¿Por qué no haces una función que lo suba? Algo como:

Código :

function showContent(btn:Button):Void {
    onEnterFrame = function(){
        var distance:Number = Math.floor((vy - btn._y)/8);
        if(btn._y > vy){
            btn._y -= distance;
        }else{
            delete(onEnterFrame)
            //El resto de cosas que hay que hacer...
       }
}


La verdad que la cosa está muy rara...

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 05 Oct 2007 03:33 pm
Ok. Muchas gracias The Fricky! :)
Ahora no estoy en mi Pc pero apenas pueda pruebo y te mantengo al tanto de como me va.
Realmente agradezco tu colaboración.
Saludos (y)

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 06 Oct 2007 02:52 am
Hola:
Probé usando la función, llamándola de varias formas y el resultado es siempre el mismo....
*Piensa -no voy a llorar, no voy a llorar- :cry: :cry:
Si aún te quedan ganas o puedes ver código rebelde lo posteo de lo contrario no te preocupes.
Muchas gracias nuevamente.
Saludos. :)

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 06 Oct 2007 04:33 am
No lo sé Nito, hay algo muy raro en ese código. Nada, postéalo a ver como podemos resolverlo... :jedi:

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 11 Oct 2007 02:14 am
Hola nuevamente The Fricky!:
Te comento que comencé por resolver el problema, primero sin códigos en que afecten a los botones, me explico mejor puse en el clip del cuadro de contenido un contador que retrasa la ejecución del clip hasta que el botón está en la parte superior.

No conforme con esa solución, buscando en la ayuda de Flash, encontré este código que condiciona acciones:
Para activar el código cuando una animación se ha completado

Código :

import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween_handler:Object = new Tween(ball_mc, "_alpha", Strong.easeIn, 100, 0, 3, true);
tween_handler.onMotionFinished = function() {
    trace("onMotionFinished triggered");
};

Y lo usé de la siguiente manera:

Código :

//Botón diseno
diseno.btn_diseno.onRelease = function() {
//se establece la primer acción a ejecutar
   var tween_handler:Object = new Tween(diseno, "_alpha", Strong.easeIn, 100, 100, 1, true);
   diseno.x=hx;
   diseno.y=vy;
   
   var b_di=1;
   arq.mcarqui.play();
   ing.mcingenieria.play();
   artegraf.mcartegrafica.play();
   producgraf.mcproducciongrafica.play();
   webdesign.mcdisenoweb.play();
   gente.mcteam.play();
   mail.mccontacto.play();
   thanks.mcgracias.play();
   //Terminó la acción anterior - sigue con el desplazamiento
   tween_handler.onMotionFinished = function() {
   contenido.play();
     };
}

Le quité la animación que hace el new Tween(diseno, "_alpha", Strong.easeIn, 100, 100, 1, true); poniendo el alfa en 100, de modo que realiza una acción que no provoca ningún efecto, sigue luego con el movimiento ascendente del botón y la desaparición de los demás botones para luego, si iniciar el cuadro de contenido:
tween_handler.onMotionFinished = function() {
contenido.play();
};

Tal vez no es muy elegante desde el punto de vista de la programación, pero es un recurso interesante.
¿Qué te parece?.

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox
Citar            
MensajeEscrito el 11 Oct 2007 02:57 am
Bueno, ciertamente no es muy "elegante", como dices, pero al menos por ahora tendré que decirte como dice un amigo mío: "Si funciona, ¡no lo toques!" :lol:

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 11 Oct 2007 01:59 pm

The Fricky! escribió:

como dice un amigo mío: "Si funciona, ¡no lo toques!" :lol:

:lol: :lol: :lol: Lo mismo le decía yo a un amigo cuando reparábamos Pcs... Nunca me hacía caso :roll:
De todas formas seguiré investigando.
Un abrazo (y)

Por Nito

790 de clabLevel



 

Transformado en 100111101000011

firefox

 

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