功率计量表动画

时间:2011-08-02 09:30:16

标签: flash actionscript-3

我目前正在使用闪光灯中的功率计进行钓鱼游戏,其中用户鼠标输入确定仪表的垂直功率,有一个容器矩形MC,以及一个由1个高度组成的仪表矩形,仪表高度根据mouseStart事件和mouseMove事件计算出的差异进行调整,是否有更好的计算方法?因为目前略有差异会导致仪表出现大幅“跳跃”。

杆的功能。

private function touchStarted(evt:MouseEvent):void
        {
            startY = evt.stageY;

        }
        private function rotateTurret(evt:MouseEvent):void 
        {
            trace("rot "+rotation);
            endY = evt.stageY;

            if (startY != 0)
            {
            difference = startY-endY  ;
            txt.text = difference.toString();
            _powerMeter.increment(difference);
            }
                 }

功率计功能

private function loop(e:Event):void
    {


        fill.height += _diff;

        if (fill.height >= 200 )
            fill.height = 200;
        if (fill.height < 0)
            fill.height = 0;        

    }

    public function increment(value:Number):void
    {
        _diff = value;
    }

2 个答案:

答案 0 :(得分:0)

_diff = value/10;怎么样?

目前我无法给你更好的建议,因为我不完全确定你的代码是做什么的。例如:loop在哪里调用?

答案 1 :(得分:0)

如果限制用户必须移动鼠标以将功率计填充到[0..1]范围内的像素数,则更容易将功率计与实际鼠标移动分开。

您可以将difference除以所需的总长度,作为完全填充功率计所需的最大像素数。

更新后的rotateTurret函数可能如下所示:

if(startY != 0) {
    var maxPixelsNeeded:Number = 300.0;

    difference = (startY-endY) / maxPixelsNeeded;

   // -- same as before
}

您还需要更改循环函数,因为_diff变量现在将在[0..1]范围内,以:

fill.height = _diff * 200; // Where 200 is the max height of the power meter.