Comunidad de diseño web y desarrollo en internet online

Efecto de movimiento elástico para texto con ActionScript 2

Citar            
MensajeEscrito el 18 Ago 2008 07:13 pm
Amigos este efecto esta muy bueno pero no se explica en que objetos deben ir los codigos.

aca les dejo el tip que es de esta pagina gracias:

[url=]
www.cristalab.com/tips/49744/efecto-de-movimiento-elastico-para-texto-con-actionscript-2
[/url]

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Ago 2008 07:15 pm
uyy perdon quise hacer el acceso directo a ese tutorial, pero veo que no es asi, no c como se hace perdon.

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Ago 2008 07:20 pm
Escribe los tags de url en el inicio y el final de la dirección como esto

url la dirección url

No pongo los tags verdaderos porque si no saldrá un link y no podrás verlo.

Y en el ejemplo que dices, al final hay un flash para descargar con el código, pero mirándolo por arriba parece ser para ponerlo en el primer frame.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 18 Ago 2008 08:20 pm
si chininet es verdad que hay un fla pero el problema es que no lo puedo descargar. me dice que intente en otra pagina similar me da una direccion web alernativa pero no lo encontre.

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 18 Ago 2008 11:11 pm
Bueno de todas formas, el código es para el frame.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Ago 2008 01:31 am
Amigo chininet asi puse todo el codigo en el frame fijate de ante mano perdoname por lo largo que es el codigo:

Código :


import mx.transitions.Tween;
import mx.transitions.easing.*;
var word:String = "cristalab";
var matrix:Array = word.split("");
var models:Array = new Array();
var modelsPosX:Array = new Array();
var spacing:Number = 1.7var style = new TextFormat();
style.color = 0xFF9900;style.font = "Verdana";
style.bold = true;
style.size = 30;
var t:Number = matrix.length;
for (var i:Number = 1; 
    i<=t; i++) {
                 var modelLetter:MovieClip = this.createEmptyMovieClip("letter"+i, this.getNextHighestDepth());
                 modelLetter.createTextField("textLetter", this.getNextHighestDepth(), 0, 0, null, null);
                 modelLetter.textLetter.autoSize = true;
                 modelLetter.textLetter.text = matrix[i-1];
                 modelLetter.textLetter.setTextFormat(style);
                 models.push(modelLetter);
}

        var posXini:Number = 0;
        var posX:Number = (i != 1) ?
        (models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;
         modelsPosX.push(posX);
        for (var i:Number = 1; 
       i<=t; i++) {     
                         var fadeInYs:Tween = new Tween(models[i-1], "_yscale", Elastic.easeOut, 100, 200, i, true); 
                         var fadeInXs:Tween = new Tween(models[i-1], "_xscale", Elastic.easeOut, 100, 200, i, true);  
                         var fadeInX:Tween = new Tween(models[i-1], "_x", Elastic.easeOut, 0, modelsPosX[i-1], i, true); 
   }
   
   


pero me sale el siguiente error que dice:

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 7: Error de sintaxis.
var spacing:Number = 1.7var style = new TextFormat();

Total de errores de ActionScript: 1 Errores comunicados: 1

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Ago 2008 01:45 am

Código :

var spacing:Number = 1.7var style = new TextFormat();


es asi

Código :


var spacing:Number = 1.7
var style:TextFormat = new TextFormat();

Por DiegoAzul

376 de clabLevel



 

Mx

firefox
Citar            
MensajeEscrito el 19 Ago 2008 08:37 am
Y después también arregla esto, puede que no te de herror, pero no es la forma correcta de ponerlo:

Esto:

Código ActionScript :

var posX:Number = (i != 1) ?
(models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;


Por esto:

Código ActionScript :

var posX:Number = (i != 1) ?(models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;


Esto:

Código ActionScript :

 for (var i:Number = 1; 
i<=t; i++) {   


Por esto:

Código ActionScript :

 for (var i:Number = 1; i<=t; i++) {  

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Ago 2008 07:37 pm
gracias chininet lo voy a probar, pero igualmente podrias pasarme el Fla de este ejemplo porque como te conte antes no lo puedo bajar. gracias

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Ago 2008 08:11 pm
Agradécele a Diego que fue quien te dijo el verdadero herror y el flash yo tampoco lo puedo descargar, me pasa lo mismo que a ti.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 19 Ago 2008 09:23 pm
uhh cierto pense q eras tu.....gracias diego disculpame la confusion.

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Ago 2008 09:48 pm
la correccion de Diego dice que no tiene errores, pero el efecto no lo hace como esta en el tutorial, o sea con el codigo que tengo puesto lo que hace es mostrarme la palabra cristalab pero esta palabra esta comprimida se entiende?
hace el movimiento de tween pero las letras no estan separadas, estube modificando valores de la funcion pero ninguna cambio el problema, cual es esa funcion a la que debo modificar el valor para que las letras se separen?

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 19 Ago 2008 10:57 pm
Hay un ciclo que lo cerraste antes de tiempo:

Código ActionScript :

for (var i:Number = 1; i<=t; i++) {

   var modelLetter:MovieClip = this.createEmptyMovieClip("letter"+i, this.getNextHighestDepth());
   modelLetter.createTextField("textLetter",this.getNextHighestDepth(),0,0,null,null);
   modelLetter.textLetter.autoSize = true;
   modelLetter.textLetter.text = matrix[i-1];
   modelLetter.textLetter.setTextFormat(style);
   models.push(modelLetter);
   var posXini:Number = 0;
   var posX:Number = (i != 1) ? (models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;
   modelsPosX.push(posX);

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 06:01 pm
ya le cambie lo que vos le pusistes chininet pero ahora me sale este error:

**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 26: Error de sintaxis.
i<=t; i++) {

Total de errores de ActionScript: 1 Errores comunicados: 1

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 20 Ago 2008 06:23 pm
Fíjate bien, compara los códigos tuyos con los del tutorial y verás que no lo tienes puesto como se debe. En 5 segundos hice un copy / paste del código que hay en la página sin revisarlo ni mirarlo, le di CTRL + ENTER y sale perfecto, así que debes revisar bien todo y tratar de que todo esté como en el tutorial, para que no te pase lo que te paso anteriormente que al hacer copy / paste uniste líneas que no estaban así en el tutorial, haz las cosas con calma y todo te saldrá bien.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 20 Ago 2008 07:31 pm
tienes razon amigo voy a probar de nuevo

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Ago 2008 04:34 am
Amigos en este ejemplo del tutorial hay un error explico por que:

hay un error en el segundo "for" porque se hace referencia o se crea la variable " i " NUEVAMENTE y hace que no funcione como tendria que funcionar porque pisa el valor de la variable " i " original.

solucion:

hay que cambiar el nombre de la variable del segundo "for" y hacer uso de esta en las instrucciones que ejecuta el for.

Despues publicare el codigo.

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Ago 2008 01:05 pm
Claudio, en AS1 y AS2 lo siguiente no da herror:

Código ActionScript :

var i:Number = 1;
var i:Number = 2;


A diferencia de AS3 que si lo daría. Puedes hacer infinitos for con la variable i, porque cada vez que se pone un ciclo esta se declara en un valor inicial.

El herror estaba en el mensaje que posteaste:


**Error** Escena=Escena 1, capa=Capa 1, fotograma=1:Línea 26: Error de sintaxis.
i<=t; i++) {

Total de errores de ActionScript: 1 Errores comunicados: 1


Fíjate en el herror:

Código ActionScript :

i<=t; i++) {


Eso es un herror de sintaxis y así no está en el tutorial. Inclusive en un mensaje de los de más arriba ya te había dicho que lo arreglaras, porque lo tenías así desde el principio al hacer copy / paste.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 21 Ago 2008 06:27 pm
ah chininet puede ser que eso me alla vuelto loco por un momento!!!! ese "<" jajaja no c la verdad, pero igual aca te posteo el codigo que hice que no es muy diferente pero echale un vistazo:

Código :


import mx.transitions.Tween;
import mx.transitions.easing.*;
var word:String = "Claudio";
var matrix:Array = word.split("");
var models:Array = new Array();
var modelsPosX:Array = new Array();
var spacing:Number = 1.7
var style = new TextFormat();
style.color = 0xFF9900;
style.font = "Verdana";
style.bold = true;
style.size = 30;
var t:Number = matrix.length;
for (var i:Number = 1; i<=t; i++) 
   {
      var modelLetter:MovieClip = this.createEmptyMovieClip("letter"+i, this.getNextHighestDepth());
      modelLetter.createTextField("textLetter", this.getNextHighestDepth(), 0, 0, null, null);
      modelLetter.textLetter.autoSize = true;
      modelLetter.textLetter.text = matrix[i-1];
      modelLetter.textLetter.setTextFormat(style);
      models.push(modelLetter);
      var posXini:Number = 0;
      var posX:Number = (i != 1) ? (models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;
      modelsPosX.push(posX);
      
      for (var j:Number = i; j<=t; j++) 
      {
         var fadeInYs:Tween = new Tween(models[i-1], "_yscale", Elastic.easeOut, 100, 200, j, true); 
         var fadeInXs:Tween = new Tween(models[i-1], "_xscale", Elastic.easeOut, 100, 200, j, true);
         var fadeInX:Tween = new Tween(models[i-1], "_x", Elastic.easeOut, 0, modelsPosX[i-1], j, true);
      }
   }

Por ClaudioMacromediat1

75 de clabLevel



Genero:Masculino  

msie7
Citar            
MensajeEscrito el 21 Ago 2008 07:02 pm
Lo sabía, en el anterior post donde te dije que te faltaba un corchete, que cerraras en ciclo lo hiciste pero dejaste un ciclo dentro de otro y esto no debe ser ya que las variables "i" se solaparían.

Fíjate bien para que veas que tu código resultante no hace lo mismo que el del ejemplo, tus letras todas se mueven y regersan a la misma vez, para eso no hacía falta dividir la palabra en letras, se hubiera animado la palabra sola y se hubieran utilizado solo tres o cuatro líneas de código, mientras que las del ejemplo lo hacen con diferente velocidad, más bien como un muelle.

Si solo hubieras cerrado el ciclo como te había dicho anteriormente y que me dijiste que lo habías hecho, ya veo que no fue así, el código te hubiera quedado como este, que si hace el efecto igual que el del tutorial:

Código ActionScript :

import mx.transitions.Tween;
import mx.transitions.easing.*;

var word:String = "Claudio";
var matrix:Array = word.split("");
var models:Array = new Array();
var modelsPosX:Array = new Array();

var spacing:Number = 1.7;
var style = new TextFormat();

style.color = 0xFF9900;
style.font = "Verdana";
style.bold = true;
style.size = 30;

var t:Number = matrix.length;

for (var i:Number = 1; i<=t; i++) {

   var modelLetter:MovieClip = this.createEmptyMovieClip("letter"+i, this.getNextHighestDepth());
   modelLetter.createTextField("textLetter",this.getNextHighestDepth(),0,0,null,null);
   modelLetter.textLetter.autoSize = true;
   modelLetter.textLetter.text = matrix[i-1];
   modelLetter.textLetter.setTextFormat(style);
   models.push(modelLetter);
   
   var posXini:Number = 0;
   var posX:Number = (i != 1) ? (models[i-2]._x+models[i-2]._width*spacing+modelsPosX[i-2]) : posXini;

   modelsPosX.push(posX);

}


for (var i:Number = 1; i<=t; i++) {

   var fadeInYs:Tween = new Tween(models[i-1], "_yscale", Elastic.easeOut, 100, 200, i, true);
   var fadeInXs:Tween = new Tween(models[i-1], "_xscale", Elastic.easeOut, 100, 200, i, true);
   var fadeInX:Tween = new Tween(models[i-1], "_x", Elastic.easeOut, 0, modelsPosX[i-1], i, true);

}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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