Flash AS3以一定角度补间

时间:2009-12-11 22:50:33

标签: actionscript-3 tweenlite

您好我有一个as3文件(如下所列),当鼠标悬停在X轴上时(使用Tweenlight)只需移动一个方框。我想做的是把盒子放在30度的角度,让盒子沿着这个角度移动。有人能告诉我我做错了吗?

import com.greensock.*;
import com.greensock.easing.* ;


cont.addEventListener(MouseEvent.ROLL_OVER, onOver);
cont.addEventListener(MouseEvent.ROLL_OUT, onOut);
var stx:Number;

function onOver(e:MouseEvent):void
{
    var stx:Number = cont.x +20 ;

    TweenLite.to(cont, 1, { x:stx });
}

function onOut(e:MouseEvent):void
{
    stx = cont.x - 20 
    TweenLite.to(cont, 1, { x:stx } );
}

以下是实例:http://img42.imageshack.us/i/box.swf/

1 个答案:

答案 0 :(得分:3)

最困难的是将你的盒子以30度的角度移动到一条线上。 你必须使用三角学......记得SOHCAHTOA?

所以基本上你需要在x和y方向移动。

在你的onOver处理程序......

你想将x移动到20 * Math.cos(30 * Math.PI / 180)

你想将y移动到20 * Math.sin(30 * Math.PI / 180)

cos和sin给你x和y步骤,让你的物体保持30度移动。

如果您希望对象移动更多,请更改20参数。