Actionscript 3 AS3曲线动画

Actionscript 3 AS3曲线动画,actionscript-3,flash,Actionscript 3,Flash,我想在as3中创建曲线动画,如图所示。但我不知道怎么做 我可以通过绘制api和curveTo方法创建动画的第一张和最后一张图片。但不知道如何做之间的图像 图片上的第一条曲线: line.graphics.moveTo(10, 200); line.graphics.lineStyle(15); line.graphics.curveTo(210,0,410, 200); 我尝试在绘图编辑器中绘制两种状态 是否有任何方法可以通过使用绘图api创建状态 感谢您的建议。正如@NicolasSiver

我想在as3中创建曲线动画,如图所示。但我不知道怎么做

我可以通过绘制api和curveTo方法创建动画的第一张和最后一张图片。但不知道如何做之间的图像

图片上的第一条曲线:

line.graphics.moveTo(10, 200);
line.graphics.lineStyle(15);
line.graphics.curveTo(210,0,410, 200);
我尝试在绘图编辑器中绘制两种状态

是否有任何方法可以通过使用绘图api创建状态


感谢您的建议。

正如@NicolasSiver所述,在执行此类任务时,使用
输入框肯定是一种选择@Chadyk提到您的曲线看起来确实是正弦曲线。因此,有一种方法可以实现一些灵活的调整:

设置一些变量,以便可以调整曲线的形状、半径、位置和大小:

private var origin:Point;
private var degree:int;
private var curveSize:int = 25; //radius
private var curveLength:int = 200;
然后用
输入帧设置它:

//set the origin to whatever you like, i'm choosing the center from the center of the curve
origin = new Point( stage.stageWidth/2 - curveLength/2, stage.stageHeight/2 );

//create our sprite     
sprite = new Sprite();
sprite.graphics.lineStyle( 2, 0xFF0000 );
sprite.graphics.moveTo( origin.x, origin.y );
addChild(sprite);

//add the listener      
addEventListener( Event.ENTER_FRAME, drawCurve );
然后它是非常直接的,我们将增加度/旋转,应用基本的trig函数求解y位置,并沿着原点沿x轴移动:

public function drawCurve( e:Event ):void {
    if ( origin.x >= origin.x + curveLength ) {
        removeEventListener( Event.ENTER_FRAME, drawCurve );
        return;
    }
    degree += 2;
    sprite.graphics.lineTo( ++origin.x, origin.y + curveSize * Math.sin( degree * Math.PI / 180 ) );
}

如果你不介意的话,我想给你一些提示:对于动画,你需要时间和定时器或者输入帧。对于复杂曲线,您需要2个移动点作为起点和终点,使用规则来预定义路径(例如Bezier),并使用一系列辅助方法来查找路径上的点。例如,示例图像中的线就是正弦曲线!你不能用这个来获得你的观点吗?;)