Estoy tratando de hacer una serpiente, pero no lo he logrado a ver si me pueden ayudar, les dejo el código que he encontrado y me salio algo asi:
Código ActionScript :
//Importamos las clases import flash.events.Event; import caurina.transitions.*; import flash.filters.GlowFilter; var myFilter:GlowFilter = new GlowFilter(0x348C0D,0,0,0,0,0,false,false); Tweener.addTween(myFilter, {blurY:10, blurX:20,time:1 ,transition:"linear", onUpdate:updateHandler}); // V A R I A B L E S function updateHandler():void { serpiente.filters = [myFilter]; } //Vars var escenario:Stage=stage; var ancho=escenario.stageWidth; /*####################################################*/ /*##### D I B U J A K U K U L C A N ####*/ /*####################################################*/ var serpiente:Shape = new Shape(); //Style var lineaserpiente = 971; addEventListener(Event.ENTER_FRAME, dibujaSerpiente); function agregaSerpiente(event:MouseEvent){ addEventListener(Event.ENTER_FRAME, dibujaSerpiente);//Agrega la funcion dibujalinea onEnterFrame //addEventListener(Event.ENTER_FRAME, entra); } //variables var angulo:Number = 90; // ángulo de inicio var amplitud:int = 5; // amplitud de la onda var eje_y:int = 285; // eje vertical de la onda var eje_x:int = 200; // eje vertical de la onda var y1:Number; var X:Number = 40; serpiente.graphics.moveTo( X, eje_y ); var grosor:Number = 0; var bandera:Boolean=true; function dibujaSerpiente(event:Event):void { graphics.clear(); y1 = ( Math.sin( angulo * ( Math.PI / 180 ) ) * amplitud ) + eje_y; //x1 = ( Math.sin( angulo * ( Math.PI / 180 ) ) * amplitud ) + eje_x; //serpiente.y = y1; X += 2; //y1 +=1; angulo += 8; //serpiente.x = X; if (grosor <= 9 && bandera==true){ grosor +=1.5; trace("Menor"+grosor); }else{ grosor -=1.5; bandera= false; if (grosor <= 9){ bandera= true; } trace("Mayor"+grosor); } serpiente.graphics.lineStyle(grosor, 0xffffff, 30); //grosor +=1; //serpiente.graphics.lineStyle( 1, 0x666666, 1 ); //A //serpiente.graphics.moveTo( X, y1 ); serpiente.graphics.lineTo(X, y1); serpiente.filters = [myFilter]; //B //serpiente.graphics.moveTo( X, y1 ); //serpiente.graphics.curveTo( X, 150, X, y1 ); //C //serpiente.graphics.moveTo(175, y1); //serpiente.graphics.lineTo(275, y1); // addChild(serpiente); serpiente.x = X/2; //serpiente.y = y1; //y1 = y1 - 35; if(X > (ancho/2)){ //removeChild(serpiente); //addChild(serpiente); //X = 10; //serpiente.graphics.moveTo( X, eje_y ); serpiente.addEventListener(Event.ENTER_FRAME,Mover); removeEventListener(Event.ENTER_FRAME, dibujaSerpiente); } } var l:Number = 300; function Mover(e:Event){ e.target.x = 200 + Math.sin(e.target.ang) * 150; var difx = e.target.x - serpiente.x; e.target.y = Math.sqrt(l*l - difx*difx) + serpiente.y; e.target.ang+=0.05; } /// // Creamos un objeto de la clase BezierSegment //scena, de fondo oscuro, cuyas dimensiones sean 700 x 180 pixeles e inserten el siguiente código para calcular una curva cúbica igual a la de las imágenes anteriores: // Definimos los 4 puntos de control de la curva cúbica var p1:Point = new Point( 20, 160 ); var p2:Point = new Point( 200, 10 ); var p3:Point = new Point( 500, 10 ); var p4:Point = new Point( 680, 160 ); // Importamos la clase BezierSegment import fl.motion.BezierSegment; // Creamos un objeto de la clase BezierSegment var bezier:BezierSegment = new BezierSegment( p1, p2, p3, p4 ); //Agreguen el siguiente código para dibujar la curva: // Creamos el objeto sobre el que vamos a dibujar var curva:Shape = new Shape(); curva.graphics.lineStyle( 1, 0xCCCCCC, 0.5 ); // Ajustamos el inicio de la curva curva.graphics.moveTo( p1.x, p1.y ); addChild( curva ); // Definimos los segmentos de la curva var segs:uint = 50; // Dibujamos la curva for( var i:uint = 1; i <= segs; i++ ){ // Obtenemos la coordenada en relación al tiempo var coord:Point = bezier.getValue( ( 1 / segs ) * i ); curva.graphics.lineTo( coord.x, coord.y ); p1.x = p1.x + 50; p1.y = p1.y + 50; }
[flash width=450 height=285]http//:www.mayawebhosting.com.mx/INTRO B.swf[/flash]