2014-10-01 113 views
0

我在查找有關使用actionscript 2沿着更復雜的路徑移動對象的信息時遇到問題。我沒有問題,如果我需要在x或y方向補間,或同時,但如果我想要一個對象遵循彎曲的路徑可以有人提供示例代碼的方式來跟隨運動指南或彎曲像bezier一樣的路徑?沿着路徑的ActionScript 2

這裏是我一貫代碼:

Tween1(); 
function Tween1(){ 
    setTimeout(theTween, 0); 
    function theTween(){ 
     var myTween:Tween = new Tween(Object, "_x", Regular.easeOut, 0, 100, 1, true); 
     var myTween:Tween = new Tween(Object, "_y", Regular.easeOut, 0, 100, 1, true); 
} 

回答

0

試試這個Animate along bezier curve

var circle:Shape = Shape(addChild(new Shape)); 
with(circle.graphics) beginFill(0x000000), drawCircle(0,0,5); 

var bezierPoint:Point = new Point(); 
function bezier(a:Number, x1:Number, y1:Number, x2:Number, y2:Number, x3:Number, y3:Number):void { 
     var b:Number =1-a; 
     var pre1:Number=a*a; 
     var pre2:Number=2*a*b; 
     var pre3:Number=b*b; 
     bezierPoint.x = pre1*x1 + pre2*x2 + pre3*x3; 
     bezierPoint.y = pre1*y1 + pre2*y2 + pre3*y3; 
} 

var inc:Number = 0; 
var theta:Number = 0; 

addEventListener(Event.ENTER_FRAME, onLoop); 
function onLoop(evt:Event):void { 

    graphics.clear(); 
    graphics.lineStyle(0,0xFF0000); 
    graphics.moveTo(200,200); 
    graphics.curveTo(mouseX, mouseY, 400, 200); 

    inc += .03; 
    inc %= 1; 

    bezier(inc, 200, 200, mouseX, mouseY, 400, 200); 
    circle.x = bezierPoint.x; 
    circle.y = bezierPoint.y; 
} 
+0

雖然這是一個非常酷的一小段代碼,我不知道我怎麼會去利用它沿着特定路徑的1次動畫,因爲這個動畫似乎是與鼠標一起自動生成的。 – nr20 2014-10-01 18:41:27

+0

使用此代碼進行實驗,這應該會讓你在那裏! – Fergoso 2014-10-01 18:54:01