向左/向右移动鼠标时,Flash自定义光标改变方向

时间:2014-09-17 06:57:00

标签: actionscript-3 flash

我对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);
        }
    }
}

我不知道错误是什么,当我启动文件时,一切都会快速闪烁。

2 个答案:

答案 0 :(得分:1)

如果你想从鼠标光标获得最佳响应并避免许多问题(比如双光标/根本没有光标,必须处理屏幕外/返回屏幕......),你应该使用{{1}的其他方法} class,它允许您在OS级别自定义鼠标光标。 然而,它需要更多的工作,因为它是基于位图的

  1. 如果光标是基于矢量的:使用MousemcGeit.getBounds()
  2. 将光标绘制到正确大小的BitmapData,生成BitmapData&#39;
  3. 从BitmapData创建MouseCursorData对象并使用bitmapData.draw(mcGeit,...)注册它们 你应该只为每个光标做一次,只要你没有&#39;取消注册游标。
  4. 在运行时,而不是使用已注册的游标名称Mouse.registerCursor(...);调用mcGeit.gotoAndStop(...);
  5. 任何时候,Mouse.cursor = ...;都会恢复默认光标。
  6. 您可以轻松找到有关使用本机游标的tutos或资源

    请注意,在非常旧的平台(Flash Player&lt; 10.2,AIR&lt; 1.5)或移动设备/平板电脑上不支持它,所以如果你需要支持这些情况,那么有一个例子说明如何检测鼠标光标功能:Optionally use Flash 10.2 cursors, while still being compatible with Flash 10.0?

答案 1 :(得分:0)

首先是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;
}

我像这样编辑你的代码。