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]
