首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >电能表仪表动画

电能表仪表动画
EN

Stack Overflow用户
提问于 2011-08-02 17:30:16
回答 2查看 686关注 0票数 0

我目前正在为一个钓鱼游戏的闪光灯功率计工作,其中用户的鼠标输入决定了一个仪表的垂直功率,有一个容器矩形MC和米矩形由1个高度,米的高度是根据从mouseStart事件和mouseMove事件计算出来的差异来调整的,有没有更好的计算方法?因为目前的微小差异将导致米的一个大的“跳跃”。

杆的功能。

代码语言:javascript
运行
复制
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);
            }
                 }

功率表功能

代码语言:javascript
运行
复制
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;
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-02 17:56:50

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

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

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

代码语言:javascript
运行
复制
if(startY != 0) {
    var maxPixelsNeeded:Number = 300.0;

    difference = (startY-endY) / maxPixelsNeeded;

   // -- same as before
}

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

代码语言:javascript
运行
复制
fill.height = _diff * 200; // Where 200 is the max height of the power meter.
票数 0
EN

Stack Overflow用户

发布于 2011-08-02 17:54:35

_diff = value/10;呢?

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6909913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档