Comunidad de diseño web y desarrollo en internet online

Tweenmax clip variable

Citar            
MensajeEscrito el 04 May 2013 08:48 pm
Hola maestros del as3.
alguien que use Tweenmax que pueda darme una mano?
tengo un clip: miclipvariable="primervalor", que cambia de nombre cada vez que hago un MOUSE_OVER,
hasta ahi, todo bien...
pero cuando le hago el tween, tweenmax no actualiza la variable, siempre se queda con el primer valor...
aqui el codigo:

{ mitween.insert(new TweenLite(this[miclipvariable] ,{x:100})) }

aqui el codigo mas completo:
var mitween=new TimelineLite()
function mibotonclick(mibotonclickevt:MouseEvent)
{ mitween.insert(new TweenLite(this[miclipvariable],{x:100})) }
function mibotonov(mibotonovevt:MouseEvent)
{ var:miclipvariable=mibotonovevt.target.name }
miboton.addEventListener(MouseEvent.CLICK,mibotonclick)
miboton.addEventListener(MouseEvent.MOUSE_OVER,mibotonov)

es decir, si llega a mover el el clip primervalor a la posicion 100, pero no hace nada con el segundovalor, tercervalor, etc...

Por vitalwork

29 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 May 2013 09:28 pm
BuenAS:

Prueba a quitar el 'var' de delante del nombre de la variable miclipvariable, ya que como lo tienes se trata de una variable local de la función. Declara la variable miclipvariable fuera de esta función, ya que si lo haces dentro SÓLO existirán en dicha función.

Código ActionScript :

var miclipvariable:String;
function mibotonov(mibotonovevt:MouseEvent) :void
{
   miclipvariable = mibotonovevt.target.name;
}


Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 04 May 2013 09:41 pm
me equivoque al poner el codigo, aqui el corregido (y sigue sin funcionar)
var miclipvariable=""primervalor"
var mitween=new TimelineLite()
function mibotonclick(mibotonclickevt:MouseEvent)
{ mitween.insert(new TweenLite(this[miclipvariable],{x:100})) }
function mibotonov(mibotonovevt:MouseEvent)
{ miclipvariable=mibotonovevt.target.name }
miboton.addEventListener(MouseEvent.CLICK,mibotonclick)
miboton.addEventListener(MouseEvent.MOUSE_OVER,mibotonov)

Por vitalwork

29 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 May 2013 09:44 pm
me equivoque al poner el codigo, aqui el corregido (y sigue sin funcionar)

Código ActionScript :

me equivoque al poner el codigo, aqui el corregido (y sigue sin funcionar)
var miclipvariable="primervalor"
var mitween=new TimelineLite()
function mibotonclick(mibotonclickevt:MouseEvent)
{ mitween.insert(new TweenLite(this[miclipvariable],{x:100})) }
function mibotonov(mibotonovevt:MouseEvent) 
{ miclipvariable=mibotonovevt.target.name }
miboton.addEventListener(MouseEvent.CLICK,mibotonclick)
miboton.addEventListener(MouseEvent.MOUSE_OVER,mibotonov) 

Por vitalwork

29 de clabLevel



 

msie
Citar            
MensajeEscrito el 04 May 2013 10:21 pm
ya lo consegui, solo añadi una funcion, y la llame al hacer click :wink: :

Código ActionScript :

var miclipvariable="primervalor"
var mitween
function mitweenclick()
{
mitween=new TimelineLite()
mitween.insert(new TweenLite(this[miclipvariable],{x:100})) 
}
function mibotonclick(mibotonclickevt:MouseEvent)
{ mitweenclick() }
function mibotonov(mibotonovevt:MouseEvent) 
{ miclipvariable=mibotonovevt.target.name }
miboton.addEventListener(MouseEvent.CLICK,mibotonclick)
miboton.addEventListener(MouseEvent.MOUSE_OVER,mibotonov) 

Por vitalwork

29 de clabLevel



 

msie
Citar            
MensajeEscrito el 05 May 2013 06:54 am
BuenAS:

Veo que estás utilizando TimelineLite para hacer los tweens, pero parece que lo que quieres hacer son tweens independientes. ¿Por qué no lo haces directamente con un TweenLite, sin utilizar TimelineLite?

Por otro lado, cuando utilizas insert para añadir un tween el segundo parámetro es el tiempo en el que quieres insertarlo, que por defecto es 0. Así, como no le estás pasando ningún valor lo está insertando en el tiempo 0.

Y finalmente, el TimelineLite se reproduce la primara vez sólo; las siguientes veces deberías hacer un play para que vuelva a ejecutarse. Pero, como decía antes, me da la impresión de que no necesitas realmente esto, y que con TweenLite directamente podrías hacer la animación. TimelineLite (timeline es el equivalente a la línea de tiempo de Flash) es para reproducir secuencias de animaciones, por ejemplo, cuando quieres que un objeto se haga semitransparente, se mueva por diferentes puntos, le aparezca una sombra, vuelva a hacerse opaco... o sea, una secuencia de animaciones, y no para reproducir una animación cada vez que el usuario pulse.

Otra opción que se me ocurre, si realmente quieres utilizar TimelineLite, es que al principio crearas esta línea de tiempo insertando todos los Tweens en sus tiempos adecuados, y después, al pulsar, lanzaras el correspondiente Tween de dicho Timeline.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome

 

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