【问题标题】:Flash custom cursor change direction when move mouse left/right向左/向右移动鼠标时Flash自定义光标改变方向
【发布时间】:2014-09-18 03:26:33
【问题描述】:

我对 Flash CS6 比较陌生,我正在尝试在我正在制作的 MS Paint 克隆中制作自定义光标。当我将鼠标向右移动时,我希望光标向右转,反之亦然。

我的动作脚本如下所示:

Mouse.hide()
mcGeit.stop()

var x_k:Array = Array();

stage.addEventListener(MouseEvent.MOUSE_MOVE, flyttMus);

function flyttMus(evt:MouseEvent)
{
    mcGeit.x = mouseX;
    mcGeit.y = mouseY;

    var i:int
    for(i = 0; i<100; i++)
    {
        x_k[i] = int(mouseX);

        if (x_k[i] < x_k[i-10])
        {
            mcGeit.gotoAndStop(1);
        }
        else if (x_k[i] > x_k[i-10])
        {
            mcGeit.gotoAndStop(2);
        }
    }
}

我没有看到错误是什么,当我启动文件时,一切都在快速闪烁。

【问题讨论】:

    标签: actionscript-3 flash


    【解决方案1】:

    如果您希望鼠标光标获得最佳响应并避免许多问题(例如双光标/根本没有光标,必须处理屏幕外/返回屏幕..),您应该使用Mouse 类的其他方法它允许您在操作系统级别自定义鼠标光标。 不过它需要更多的工作,因为它是基于位图的

    1. 如果您的光标是基于矢量的:通过使用mcGeit.getBounds()bitmapData.draw(mcGeit,...) 将光标绘制到正确大小的 BitmapData 来生成 BitmapData
    2. 从 BitmapData 中创建 MouseCursorData 对象并将它们注册到 Mouse.registerCursor(...); 只要您不取消注册游标,您应该对每个游标只执行一次。
    3. 在运行时,使用注册的游标名称而不是 mcGeit.gotoAndStop(...); 调用 Mouse.cursor = ...;
    4. Mouse.cursor = "auto"; 将随时恢复默认光标。

    您可以轻松找到有关使用本机光标的教程或资源

    请记住,它在非常旧的平台(Flash Player Optionally use Flash 10.2 cursors, while still being compatible with Flash 10.0?

    【讨论】:

    • 这是迄今为止最好的方法(比使用 MouseMove 事件的开销要少得多)。不过,我建议您使用完整的工作代码示例来改进您的答案。虽然问题的实际答案(闪烁)是数组实例化中缺少 new 关键字。
    【解决方案2】:

    首先 var x_k:Array = Array();必须是 var x_k:Array = new Array();

    Mouse.hide()
    mcGeit.stop()
    
    var temp:Number = 0;
    
    stage.addEventListener(MouseEvent.MOUSE_MOVE, flyttMus);
    
    function flyttMus(evt:MouseEvent) {
        mcGeit.x = mouseX;
    
        if(mouseX < temp){
            mcGeit.gotoAndStop(1);
        }else{
            mcGeit.gotoAndStop(2);
        }
    
        mcGeit.x = mouseX;
        mcGeit.y = mouseY;
    
        temp = mouseX;
    }
    

    我像这样编辑你的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多