[AS3编程教学]自定义鼠标(2)

 时间:2024-10-29 06:25:58

1、打开Flash,新建一个AS3空白文档,如下图所示:

[AS3编程教学]自定义鼠标(2)

2、我们自己绘制一个鼠标,为了以示区别,这次我们鼠标换一种颜色和造型,同时希望大家看清楚,文档的默认设置帧频为30帧每秒:

[AS3编程教学]自定义鼠标(2)

3、我们同样命名这个自己绘制的鼠标转换为影片剪辑,属性名为mcMouse,因为是编程教学,所以图形的绘制和元件转换过程大家自己完成:)

[AS3编程教学]自定义鼠标(2)

4、时间轴上新建一层AS层,第一帧按下F9,在动作面板中写入如下代码,并发布运行看看效果:Mouse.hide();stage.addEventListener(MouseEvent.MOUSE_MOVE,dragMouse);function dragMouse(e:Event):void{ mcMosue.x = stage.mouseX; mcMosue.y = stage.mouseY;}

[AS3编程教学]自定义鼠标(2)

5、是不是已经实现了自定义鼠标效果,但是有个奇怪的现象,鼠标不动的时候,鼠标可能再其它地方,鼠标动一下才开始跟随。这个跟我们这次侦听的事件有关,MouseEvent.MOUSE_MOVE,这个事件就是在鼠标移动的时候才开始相应侦听函数,改变自定义鼠标位置,这样效率高很多,为了防止出现一开始的不同步现象,我们需要默认将自定义鼠标位置放置到鼠标位置,加入下面代码再次执行:mcMosue.x = stage.mouseX;mcMosue.y = stage.mouseY;

[AS3编程教学]自定义鼠标(2)

6、相信这次测试效果完全OK,但是可能细心的同学已经发现了这段代码中两段是一模一样的,你们听说过”封装“这个词吗,来个简单的封装吧,将相同的代码写出函数,就像下面这样,效率和简洁度都有提高:Mouse.hide();setMousePos();stage.addEventListener(MouseEvent.MOUSE_MOVE,dragMouse);function dragMouse(e:Event):void{ setMousePos();}function setMousePos():void{ mcMosue.x = stage.mouseX; mcMosue.y = stage.mouseY;}

[AS3编程教学]自定义鼠标(2)

7、这种写法在效率上比较好,毕竟鼠标不动的时候,程序不会进行很多无用计算。但是弊端就是当你的作品本身需要注册鼠标移动事件的时候i,有可能冲突,此时你就需要将冲突的东西都放在一起处理了。

[AS3编程教学]自定义鼠标(2)
  • 趣头条怎么更换我的勋章?
  • 怎样完成《永恒之塔》马布伦制作的物品任务
  • win10怎么调整光标的闪烁速度?
  • 永恒之塔枪炮星攻略
  • 梦三国2军团出征物理出装之文鸯?
  • 热门搜索
    养成教育手抄报 中华传统文化手抄报 2035年的祖国手抄报 致敬抗疫英雄手抄报内容 英语手抄报图片简单又漂亮 二年级手抄报大全 关于食品安全的手抄报 清明节手抄报一等奖 红十字会手抄报 我爱祖国的手抄报