..:: MX Studio Fóruns ::..: Problema com TweenLite [RESOLVIDO] - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Problema com TweenLite [RESOLVIDO] quero mudar o valor de uma variável Number

#1 User is offline   Ohrlando 

  • Group: Membros
  • Posts: 141
  • Joined: 17-March 10

Posted 01 July 2010 - 06:13 PM

Olá blz todos??

o problema é o seguinte, eu quero fazer uma borda de uma quadrado, mas quero que a borda fique com um efeito de "desenhando na hora"
aí tentei o seguinte código

import com.greensock.*;
import com.greensock.easing.*;

var quadrado:Sprite = new Sprite();
quadrado.x = 200;
quadrado.y = quadrado.x;
quadrado.graphics.beginFill(0x333333, 1);
quadrado.graphics.drawRect(0, 0, 72, 72);
quadrado.graphics.endFill();

quadrado.graphics.lineStyle(2, 0xff6600, .3);
addChild(quadrado);
var posX:uint = 0;
trace(posX.toString(36));
TweenLite.to(posX, 1, {posX.:72});

addEventListener(Event.ENTER_FRAME, enterFrame_Handler);
function enterFrame_Handler(evt:Event):void{
	quadrado.graphics.lineTo(0,posX);
	trace(posX);
}


mas retorna um erro falando que não existe o método posX, eu até intendo porque, mas não consigo pensar outra alternativa
alguém tem idéia como faço isso? Ahh, por enquanto esse é só pra desenhar uma linha lateral. 72 é a altura do quadrado

valeu abraço!
0

#2 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 04 July 2010 - 07:08 PM

O problema é que você está tentando animar uma variável e não um objeto, por isso o Flash retorna essa mensagem de erro. Dei uma procurada mas acabei não encontrando nenhum material mostrando como usar a Classe TweenLite ou qualquer outra Classe derivada da Classe Tween para desenhar alguma forma, a solução foi usar o bom e velho enterFrame. Um exemplo desenhando apenas a borda lateral e depois exibindo o quadrado já desenhado.

var tam:Number = 0;
var quadrado:Sprite = new Sprite();
quadrado.x = 200;
quadrado.y = quadrado.x;
quadrado.graphics.beginFill(0x333333, 1);
quadrado.graphics.lineStyle(2, 0x333333, 1);
quadrado.addEventListener(Event.ENTER_FRAME, desenhaQuadrado);
function desenhaQuadrado(event:Event):void {
	if (tam < 72) {
		quadrado.graphics.lineTo(0, tam);
		tam += 5;
	} else {
		quadrado.removeEventListener(Event.ENTER_FRAME, desenhaQuadrado);
		quadrado.graphics.drawRect(0, 0, 72, 72);
	}
}
addChild(quadrado);


[]s
0

#3 User is offline   Ohrlando 

  • Group: Membros
  • Posts: 141
  • Joined: 17-March 10

Posted 05 July 2010 - 04:12 PM

Oi amigo, tudo bem??
o que você fez funciona lindamente, brigadão mesmo

eu tava fuçando aqui as propriedades do TweenLite, e consegui encontrar uma solução pra usar o TweenLite :D/>

assim:
import com.greensock.*;
import com.greensock.easing.*;

var quadrado:Sprite = new Sprite();
quadrado.x = stage.stageWidth/2;
quadrado.y = stage.stageHeight/2;

addChild(quadrado);

quadrado.graphics.beginFill(0x333333, 1);
quadrado.graphics.drawRect(0, 0, 100, 100);
quadrado.graphics.endFill();

quadrado.graphics.lineStyle(2, 0xff6600, 1);

var posX:Number = 0;
TweenLite.to(this, 1, {posX:100, onUpdate: drawRect});

function drawRect():void{
	quadrado.graphics.lineTo(0,posX);
}


o segredi era que usava this, pois pra acessar posX seria this.posX, e também usar um onUpdate =D

brigadão pela força!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)