Comunidad de diseño web y desarrollo en internet online

Problemas con posiciones guardadas en Array

Citar            
MensajeEscrito el 18 May 2010 09:59 pm
Bueno, resulta que tengo un movieClip que simula un codigo de barras, la animación que quiere es armar ese codigo de barras por partes, para esta tarea uso la clase Caurina.

Código ActionScript :

import caurina.transitions.Tweener;
var vectorA:Array = new Array();
var vectorB:Array = new Array();
var intervalo:int = 100;
var iglobal:int = 0;
var biglobal:int = 0;
var intervalot:Timer = new Timer(intervalo, 0);
var intervalob:Timer = new Timer(intervalo, 0);

function init(){
   intervalot.addEventListener(TimerEvent.TIMER, tirarEasing);
   intervalot.start();
   intervalob.addEventListener(TimerEvent.TIMER, tirarEasingb);
   intervalob.start();
}

function guardarpos(){
   for(var i:int=1;i<17;i++){
      vectorA.push(this["a"+i].x);
      this["a"+i].x = -500;
   }
   for(var j:int=1;j<18;j++){
      vectorB.push(this["b"+j].x);
      this["b"+j].x = 500;
   }
   init();
}
guardarpos();


function tirarEasing(event:TimerEvent):void{
   iglobal++;
   if(iglobal<17){
      
      this["a"+iglobal].x=vectorA[iglobal];
      //Tweener.addTween(this["a"+iglobal],{x:vectorA[iglobal],time:.5});
   }else {
      iglobal = 0;
      intervalot.stop();
   }

}

function tirarEasingb(event:TimerEvent):void{
   biglobal++;
   if(biglobal<18){
      //trace(biglobal);
      this["b"+biglobal].x=vectorB[biglobal];
      //Tweener.addTween(this["b"+biglobal],{x:vectorB[biglobal],time:.5});
   }else {
      biglobal = 0;
      intervalob.stop();
   }

}


El logo original se ve de esta forma: http://www.codigoe-marketing.com/prueba/logoactionOriginal.swf.

El logo animado con el codigo anterior se ve de esta forma: http://www.codigoe-marketing.com/prueba/logoaction.swf.

Obviamente no es el mismo resultado y mucho menos las mismas posiciones, alguien sabe como resolver este problema???

Muchas Gracias!!!

Por lopezquekk

44 de clabLevel



 

Medellin

firefox
Citar            
MensajeEscrito el 19 May 2010 10:27 am
Si usas una máscara que vaya mostrando las barras de a poco simnplificas la tarea, no veo que agregue mucho hacerlo por código

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 19 May 2010 01:25 pm
ok, eso está bien, pero la idea es usar easing para un efecto. el efecto si easing es solo una prueba!!

Por lopezquekk

44 de clabLevel



 

Medellin

chrome
Citar            
MensajeEscrito el 21 May 2010 10:48 am
El problema que tienes es que los arrays comienzan por 0 y tienes tu contador comenzando por 1
Vamos, la posición inicial de "a1" es vectorA[0], la posición inicial de "a2" es vectorA[1]....

La solución más sencilla es que tus "barras" se llamen "a0","a1","a2"... (OJO, cambia el bucle y los límites)

Si quieres una solución "más imaginativa" puedes crearte una Clase -que será la Clase Base de tus Barras- de la forma

Código ActionScript :

package{
    public class Barra extends MovieClip{
    public var x0:Number
    public function Barra(){
         addEventListener(Event.ADD_TO_STAGE,mover){
    }
    private function mover(e:Event){
       removeEventListener(Event.ADD_TO_STAGE,mover)
        x0=x
        x+=500
    }
}

En tu película principal moverías los distintos "a" a

Código ActionScript :

this["a"+iglobal].x=this["a"+iglobal].x0

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 May 2010 12:46 pm
Perfecto eso era, Muchísimas Gracias

Por lopezquekk

44 de clabLevel



 

Medellin

chrome

 

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