Comunidad de diseño web y desarrollo en internet online

Tween en un contenedor de un tamaño especifico

Citar            
MensajeEscrito el 24 Sep 2012 02:00 am
Hola a todos, estoy haciendo un catalogo de 6 productos en oferta para un negocio, lo que hice fue crear contenedores en un MC y por medio de un listener transformarlas a un tamaño especifico y despues usar un tween por medio de AS para que se muevan y se achiquen o agranden dependiendo en que frame esta.

el problema es que al activar el Tween la imagen vuelve a su forma original y no se queda en un tamaño especifico.

el contenedor con el listener de una de las imagenes seria asi:

Código ActionScript :

var imagen_mcl:MovieClipLoader = new MovieClipLoader();
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
   target_mc._height=275;
   target_mc._width=350;
};
imagen_mcl.addListener(mclListener);

imagen_mcl.loadClip("imagen1.jpg", imagen1);

un tween previo para modificar el tamaño la primera y moverla

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_xscale", Strong.easeInOut, 100, 100, 3, false);
var tween1:Tween = new Tween(imagen1, "_yscale", Strong.easeInOut, 100, 100, 3, false);
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 0, 722, 3, false);
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 0, 46, 3, false);
var tween1:Tween = new Tween(imagen1, "_alpha", Strong.easeInOut, 0, 100, 13, false);


y un tween que se activa mediante un AS dentro del boton:

Código ActionScript :

on(press){
import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_xscale", Strong.easeInOut, 100, 75, 25, false);
var tween1:Tween = new Tween(imagen1, "_yscale", Strong.easeInOut, 100, 75, 25, false);
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 722, 1157, 25, false);
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 46, 58, 25, false);
_root.Catalogo1.gotoAndPlay(10)
}


y estoy tambien intentando hacer la inversa del tween en otro boton pero no me funciona, lei algo en adobe que agregandole Tween.yoyo() se invertia pero no me esta funcionando

Desde ya muchas gracias, espero su respuesta :wink:

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 12:43 pm
No entiendo. ¿Al moverte de frame pierde el tamaño que le dio el Tween?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 01:10 pm
Hola Jorge, no lo que pasa es que cuando se activa el tween la imagen no esta en el tamaño que le asignó el listener sino que vuelve al tamaño original, y tendria que que redimensionarse al tamaño 350x275

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 01:17 pm
La imagen al 100 % vuelve a su tamaño original, no uses ese porcentaje en el Tween, en todo caso modifica las propiedades _width y _height en vez de la escala

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 01:44 pm
ya lo habia probado antes y no funciona, me lo seguia aumentando por porcentaje

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_width", Strong.easeInOut, 350, 100, 3, false);
var tween1:Tween = new Tween(imagen1, "_height", Strong.easeInOut, 275, 100, 3, false);
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 0, 722, 3, false);
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 0, 46, 3, false);
var tween1:Tween = new Tween(imagen1, "_alpha", Strong.easeInOut, 0, 100, 13, false);


voy a probarlo de vuelta tal vez me funcione, de todos modos gracias por tu rapida respuesta jorge

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 02:16 pm
Lo tienes que hacer cuando termina de cargar, es decir despues de haber hecho el resize, posiblemente lo tengas antes

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 06:50 pm
lo probe en otra maquina con otro flash el CS6 y me funciono bien lo que me dijiste, me quedo asi:

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_width", Strong.easeInOut, 350, 350, 3, false);
var tween1:Tween = new Tween(imagen1, "_height", Strong.easeInOut, 275, 275, 3, false);
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 0, 722, 3, false);
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 0, 46, 3, false);
var tween1:Tween = new Tween(imagen1, "_alpha", Strong.easeInOut, 0, 100, 13, false);

se ve que estaba poniendo algo mal antes cuando lo habia probado, ahora el problema es invertir un tween que se acciona por boton, probe haciendo

Código ActionScript :

on(press){
import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween.yoyo(imagen1, "_width", Strong.easeInOut, 350, 263, 25, false);
var tween1:Tween = new Tween.yoyo(imagen1, "_height", Strong.easeInOut, 275, 206, 25, false);
var tween1:Tween = new Tween.yoyo(imagen1, "_x", Strong.easeInOut, 722, 1157, 25, false);
var tween1:Tween = new Tween.yoyo(imagen1, "_y", Strong.easeInOut, 46, 58, 25, false);
_root.Catalogo1.gotoAndPlay(45)
}

esto

Código ActionScript :

on(press){
import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_width", Strong.easeInOut, 350, 263, 25, false);
var tween1:Tween = new Tween(imagen1, "_height", Strong.easeInOut, 275, 206, 25, false);
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 722, 1157, 25, false);
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 46, 58, 25, false);
tween1.onMotionStarted = function() {
    tween1.yoyo();
}; 
_root.Catalogo1.gotoAndPlay(45) 
}

y esto

Código ActionScript :

on(press){
import mx.transitions.Tween;
import mx.transitions.easing.*;
var tween1:Tween = new Tween(imagen1, "_width", Strong.easeInOut, 350, 263, 25, false);
tween1.stop();
var tween1:Tween = new Tween(imagen1, "_height", Strong.easeInOut, 275, 206, 25, false);
tween1.stop();
var tween1:Tween = new Tween(imagen1, "_x", Strong.easeInOut, 722, 1157, 25, false);
tween1.stop();
var tween1:Tween = new Tween(imagen1, "_y", Strong.easeInOut, 46, 58, 25, false);
tween1.stop();
tween1.onMotionResumed = function() {
    tween1.yoyo();
tween1.resume();
}; 
_root.Catalogo1.gotoAndPlay(45)
}

y ninguno me funciona

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 06:51 pm
¿imagen1 está dentro de Catalogo1 ?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:10 pm
si

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:16 pm
Entonces asegúraten que esté presente en el frame donde ejecutas tu comando hasta el 45 en inclusive mas (hasta donde tengas el stop) y que no haya ningún fotograma clave entre el momento que creas el Tween hasta el que lo termina de ejecutar, concretamente por esto

_root.Catalogo1.gotoAndPlay(45)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:35 pm
me asegure y de ninguna forma funciona mira te muestro con screenshot

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:36 pm
este es el link de la imagen
http://s1270.photobucket.com/albums/jj607/Beguelin/?action=view&current=frames_zpsbb843c94.png

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:42 pm
Si te refieres a un Tween que estaba corriendo, debes detenerlo antes de crear otro. Si usas alguna librería un poco mas avanzada, como por ejemplo TweenLite o TweenMax, puedes armar seguidillas de tween de una: http://www.greensock.com/

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 07:55 pm
los tweens que yo uso se activan por medio de AS2 dentro un boton salvo el primero que se activa al iniciar.
le puse stop(); en los frames 10, 17, 24, 31, 38 y 45, vos decis de cambiarle el _root.Catalogo1.gotoAndPlay(45) por _root.Catalogo1.gotoAndStop(45)?

Por Mvkbeguelin

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2012 08:03 pm
Si no tienen fotograma clave según se describe en tu screenshot, el movimiento del timeline no le debería afectar a menos que hayas puesto código suelto en vez de en botones

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 Sep 2012 08:26 pm
les puse AS stop(); en los fotogramas clave vacios que tienen marcado stop

Por Mvkbeguelin

18 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Sep 2012 09:32 pm
mi duda seria donde pongo tween.yoyo(); si quiero que se invierta la animación

Por Mvkbeguelin

18 de clabLevel



 

firefox

 

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