2014-03-04 142 views
0

pictureAS3曲線動畫

我想在as3中創建曲線的動畫,如圖中所示。但我不知道如何做到這一點。

我可以通過繪製api和curveTo方法創建動畫的第一張和最後一張圖片。但不知道如何做圖像之間!

的圖片第一條曲線:

line.graphics.moveTo(10, 200); 
line.graphics.lineStyle(15); 
line.graphics.curveTo(210,0,410, 200); 

我tryed在繪圖編輯器之間的平局狀態。

有沒有什麼辦法通過使用繪圖API創建狀態?

感謝您的任何建議。

+0

如果您不介意,我想給您提示:對於動畫,您需要時間和計時器或ENTER_FRAME。對於複雜曲線,您需要2個移動點作爲開始和結束,規則來預定義路徑(例如Bezier),以及一堆幫助方法來查找路徑上的點。 –

+0

像示例圖像中的線條一樣的線條正弦曲線!你不能用這個來得到你的觀點嗎? ;) – chadiik

回答

2

作爲@NicolasSiver在使用ENTER_FRAME時提到的絕對是執行此類任務時的一種選擇。 @Chadyk提到你的曲線看起來像是正弦曲線。所以一個方法,你可以實現這對於一些靈活的調整:

設置一些變量,因此你可以調整之類的東西,半徑,位置和曲線的大小:

private var origin:Point; 
private var degree:int; 
private var curveSize:int = 25; //radius 
private var curveLength:int = 200; 

然後用ENTER_FRAME設置它:

//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); 

然後,它是相當簡單的,我們將遞增度/旋轉,運用基本的三角函數求解y位置,並利用我們的起源,因爲它沿x軸移動:

​​