Comunidad de diseño web y desarrollo en internet online

Desplazar una clase por una cuadricula

Citar            
MensajeEscrito el 31 Oct 2012 05:24 am
Ante todo gracias a los que intente solucionar esta duda estoy muy desactualizado de flash ahora AS3 es con clase. Bueno mi duda son dos tengo una clase esta es una animación de partículas que siguen el mouse yo necesito que esta clase No siga el mouse quiero que se desplace por una ruta y que esta ruta sea repetitiva lo he intentado arrastrando la clase como movieclip a escenario pero la case pierde la animación al intentar meterlo en una interpolación de movimiento he intentado creando una guía de movimiento pero no funciona
La otra cosa que me trae confundido es que si creo una clase que dibuje un rectángulo o circulo
La llamo desde
var miclase : clase1 = new clase1();
addChild(miclase); si es un clase con animaciones no funciona
Las clase la tengo que llamar desde el panel de propiedades cuando son animadas por qué?
A mí se me ocurre crear un mivieclip llamar a la clase desde ahí y después arrástrala al escenario una vez ahí crear una interpolación de movimiento o hacer que siga una guía de movimiento la verdad no tengo ni idea como volver la clase movieclip y no sé si funcione


Código ActionScript :

package
{
   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.MouseEvent;
   
   [SWF(width = "465", height = "465", backgroundColor = "0xFFFFFF", frameRate = "30")]
   public class Fly extends Sprite
   {
      private var num:uint = 300;
      private var maxRad:Number = 50;
      private var friction:Number = 0.95;
      private var dots:Array = [];
      
      public function Fly()
      {
         for(var i:uint=0 ;i<num; i++)
         {
            var dot:Ball = new Ball(1, 0);
            var radius:Number = Math.sqrt(Math.random())*maxRad;
            var angle:Number = Math.random()*(Math.PI*2);
            dot.x = stage.stageWidth / 2 + Math.cos(angle)*radius;
            dot.y = stage.stageHeight/2 + Math.sin(angle)*radius;
            addChild(dot);
            dots.push(dot);
         }
         
         addEventListener(Event.ENTER_FRAME, loop);
      }
      
      private function loop(e:Event):void
      {
         for (var i:uint=0; i<num; i++)
         {
            var dot:Ball = dots[i];
            dot.vx += Math.random()*0.2-0.1;
            dot.vy += Math.random()*0.2-0.1;
            var radius:Number = Math.sqrt(Math.random())*maxRad;
            dot.x += (mouseX - dot.x)/3 + dot.vx * radius;
            dot.y += (mouseY - dot.y)/3 + dot.vy * radius;
            dot.vx *= friction;
            dot.vy *= friction;
         }
      }
   }
}

   import flash.display.Sprite;
   import flash.display.Shape;

   class Ball extends Shape
   {
      public var radius:Number;
      public var color:uint;
      public var vx:Number=0;
      public var vy:Number = 0;
      
      public function Ball(radius:Number=40, color:uint=0xFF0000)
      {
         this.radius = radius;
         this.color = color;
         
         graphics.beginFill(color);
         graphics.drawCircle(0, 0, radius);
         graphics.endFill();
      }
   }

adjuto una imagen para una mayor comprecion de lo que quiero
[img]http://l4c.me/fotos/manuelc65/moner/sizes/o[/img]

tambien he intentado de esta forma

Código ActionScript :

var clase1:tes = new tes ();
addChild(clase1);

clase1.x = 100;
clase1.y = 100;

addEventListener (Event.ENTER_FRAME ,you);
function you (a:Event):void{
   clase1.x++; // hace que se desplase a la derecha 
    if (clase1.x >= 200){
        clase1.x = 200; //esto para el movieclip pare
       clase1.y++;
       if (clase1.y >= 200){
          clase1.y = 200; //asta aqui todo ba bien
          clase1.x--; //aqui se detiene  
         // para que funcione aqui tengo que crear otra funcion 
         //despues de meter varia funciones hice la ruta 
         //con un rectagulo por que con la clase no funciona
         //pero para que se repita no tengo idea como hacerlo 
         //supogo que con un (FOR)
          }
           }
}

gracias
disculpen este es mi primer post si ven algun error por ahi

Por Manuelc65

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Oct 2012 02:21 pm
Segun entiendo es algo que puedes hacer por animación. Si esto es así, haz la animación dentro de un MovieClip, luego haz click derecho en la librería sobre el, le das click a opciones, marcas exportar para ActionScript y como nombre de clase le pones por ejemplo miClip. Luego para agregarlo al escenario pones


addChild(new miClip())

Y verás tu animación en el escenario, siempre que la clase desde la que haces addCHild est{e en el DisplayList, por ejemplo el document class.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 31 Oct 2012 03:38 pm
Jorge muchas gracias por responder pero no comprendo no se como puedo llamar esa clase desde un movieclip ese creo que es mi problema
intente desarmar la clase quitando los parametros de clase para convertirla en movie clip y arrastrarla a escenario no me funciona
o tu sabes como puedo desarmar esa clase para ponerla en el movie clip
gracias

Por Manuelc65

1 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Oct 2012 05:53 pm
Ok, entonces lo que quieres hacer es que el MouseTrail en vez de seguir el Mouse haga un dibujo específico ... y eso es un problema porque la base del MouseTrail es actualizar los algoritmos de dibujo en base a la posición del Mouse mientras que hacer un cuadrado es simplemente dibujar, con lo cual mas que modificar es rehacer.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

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