1

嗨,我有一个 as3 文件(如下所列),当鼠标悬停在它上面时(使用 Tweenlight),它只会沿 X 轴移动一个框。我想做的是将盒子放在 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/

4

1 回答 1

3

最困难的事情是以 30 度角在一条线上移动你的盒子。您将不得不使用三角函数...还记得 SOHCHAHTOA 吗?

所以基本上你需要在 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 参数。

于 2009-12-11T23:00:42.317 回答