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

Escalado y movimiento de objetos con Actioncsript

Estas en el tema de Escalado y movimiento de objetos con Actioncsript en el foro de Flash y Actionscript en Foros del Web. Lo he buscado, lo juro! Pero como muchas veces, las cosas mas simples son las más dificiles de encontrar.. Bueno: he empezado la casa por ...
  #1 (permalink)  
Antiguo 06/10/2004, 02:05
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
Escalado y movimiento de objetos con Actioncsript

Lo he buscado, lo juro! Pero como muchas veces, las cosas mas simples son las más dificiles de encontrar..

Bueno: he empezado la casa por el tejado y ahora no se hacer algo aparentemente sencillo:

Varios botones, en roll over sobre uno de ellos, los demas se alejan (se empequeñecen)
vale, utilizando _xscale lo modifico. PERO no progresivamente, lo que hace es cambiar su propiedad instantanemente. Que debo utilizar para conseguir que sea progresivo como si estyuviera haciendo una interpolacion??


Gracias! Sin este foro nos ahogariamos!
  #2 (permalink)  
Antiguo 06/10/2004, 02:31
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Hola,

bueno no se si te he entendido bien, pero te aporto una solución.

1- crea 1 movieclip ke tenga forma de botón.
2- pon 3 instancias en la escena, y les pones como nombre de instancia:
- jefe
- boton1
- boton2
3- pon este codigo en el primer frame de tu pelicula flash:
Código:
//creamos un prototype al cual le llegan 4 parametros
MovieClip.prototype.escalar = function (tamx, tamy, posx, vel) {
 this.onEnterFrame = function () {

   // with (this) significa ke las propiedades a ejecutar, se van a aplicar
   // sobre el objeto al ke se le ha hecho la llamada, por ejemplo
   // _root.boton1.escalar(20,10,400,5);

   with (this) {
      // aplicamos _xscale hasta que llegue al tamx ke le pasamos al prototype
      _xscale = _xscale + (tamx - _xscale) / vel;
      // aplicamos _yscale hasta que llegue al tamy ke le pasamos al prototype
      _yscale = _yscale + (tamy - _yscale) / vel;

      // vamos moviendo el objeto en su eje X hasta ke llegue a la posx ke le pasamos al prototype
      _x = _x + (posx - _x) / vel;


      // por último comprobamos ke todas las propiedades han llegado a sus 
      // limites, en este caso tamx y tamy y borramos el EnterFrame

      if (Math.ceil(_xscale) == Math.ceil(tamx) && Math.ceil(_yscale) == Math.ceil(tamy)) {
         delete onEnterFrame;
      }
   }
 };
};
4- por último pon este codigo en el movieclip JEFE
Código:
    on (press){
	_root.boton1.escalar(20,10,400,5);
	_root.boton2.escalar(20,10,400,5);
    }
Espero ke te sirva de algo, un saludo

Última edición por pr0; 06/10/2004 a las 10:33
  #3 (permalink)  
Antiguo 06/10/2004, 02:46
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
fantastico, mil gracias.

me queda bastante codigo que aprender... puedes interpretarme el codigo donde defines la funcion? me ayudaria mucho para desarrollar el tema...

GRACIAS DE NUEVO!!
  #4 (permalink)  
Antiguo 06/10/2004, 02:57
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Hola ender,

no se si te bastará con los pekeños comentarios ke acabo de editar en el anterior mensaje, pero tampoco tiene mucho más el codigo, poco a poco se va aprendiendo.

Saludos
  #5 (permalink)  
Antiguo 06/10/2004, 04:31
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
Si el resto del mundo funcionara igual que este foro sería increible.

Me gustaria poder ayudar algun dia como lo haceis vosotros.

GRACIAS Pro.

Si necesitas algo de Mallorca, dimelo. Ya tienes mi mail!
  #6 (permalink)  
Antiguo 06/10/2004, 08:14
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
Hay una cosa que no llego entender

al darle los valores de posicion:

< on (press){
_root.boton1.escalar(20,10,400,5);
_root.boton2.escalar(20,10,400,5);
}
>

estos no colocan al mc exactamente en esas coordenadas, quedan desplazados.

Mi manera de calcular las posicion es a traves de cualquier objeto "inutil" del escenario, lo coloco donde quiero y miro los valores de posicion en sus propiedades --- después le doy esos valores a mi MC y no coinciden..?
  #7 (permalink)  
Antiguo 06/10/2004, 08:15
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
que será.. será?
  #8 (permalink)  
Antiguo 06/10/2004, 08:22
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
hmm no se si as puesto los valores 20 y 10 en negrita porke te refieres a esos valores, en ese caso te advierto de ke el valor de posicion X es el 400, ese es el ke tienes ke modificar.

el código ke te puse solo realiza movimiento en el eje X si kieres ke tb se mueva en el eje Y tienes ke sustituir esta linea:

MovieClip.prototype.escalar = function (tamx, tamy, posx, vel)

por

MovieClip.prototype.escalar = function (tamx, tamy, posx, posy, vel)

---------

Debajo de esta linea: _x = _x + (posx - _x) / vel;
poner esta: _y = _y + (posy - _y) / vel;

---------

y en la llamada a la funcion poner: _root.boton1.escalar(20,10,400,100,5);
donde el 100 es la posición en el eje Y.

Si la cosa sigue igual avisame, saludos
  #9 (permalink)  
Antiguo 06/10/2004, 09:35
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
Perdon Pro, no te lo dije, marqué mal los caracteres en negrita.. y con la variable posy hice exactamente lo que me has propuesto, y así me sifuie haciendo lo mismo, me coloca el mc en un lugar que no entiendo ,

no deberia interpretar las coordenadas igual queel resto de los objetos?

pues si es que si no se q pasa.

estoy haciendo sumas y restas para ir acertandole el sitio...
  #10 (permalink)  
Antiguo 06/10/2004, 10:35
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
pues la verdad es ke no entiendo porke sucede eso...
luego le echaré un vistazo al ejemplo a ver ke puede pasar.

Saludos
  #11 (permalink)  
Antiguo 07/10/2004, 08:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 42
Antigüedad: 19 años, 7 meses
Puntos: 0
vale no habia caido..

las coordenadas de un moviecplip son en referencia al 0,0 (izq. arriba) pero si este está dentro de otro objeto las coordenadas 0,0 pasan a situarse en esquina izq-arriba del objeto padre..

hay estaba mi problema!

Gracias!
  #12 (permalink)  
Antiguo 07/10/2004, 08:24
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años
Puntos: 28
Claro ender jejeje, no me habia planteado ke lo tenias dentro de otro MC por eso no sabia ke ocurria

Bueno pues solucionado, un saludo
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 15:49.