Flash AS3教程:用ActionScript侦测鼠标的位置

2016-02-16 19:23 51 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的Flash AS3教程:用ActionScript侦测鼠标的位置教程,一起来看看吧!超容易上手~

【 tulaoshi.com - FLASH 】

在这个教程中我们将学习如何用Flash AS3来得到鼠标的当前方位。我们可以用此为游戏创建有趣的控制方法,例如可把鼠标当作一个游戏控制杆。现在我们先展示一下我们的作品。

下面是一个简单的示例:

简单概述

使用鼠标事件来监听鼠标光标的运动,用变量存贮相应数据并展示其当前方位。

第一步:创建一个新文档

打开Flash并创建一个新的Flash文档(ActionScript 3)。

Flash AS3教程:用ActionScript侦测鼠标的位置,PS教程,图老师教程网

第二步:打开动作面板

按F9或执行窗口动作打开动作面板。

Flash AS3教程:用ActionScript侦测鼠标的位置,PS教程,图老师教程网

第三步:变量

键入一些我们将使用的变量,变量名应能一目了然。

var previousX:Number =0;

var previousY:Number = 0;

var currentX:Number = 0;

var currentY:Number = 0;

var xDir:String;

var yDir:String;

var dir:TextField = new TextField();

第四步:主函数

下面是主函数

function getMouseDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

dir.width = stage.stageWidth; //文本区域的大小

addChild(dir); //在舞台上添加文本区域

//在舞台上添加一个鼠标事件监听器,并当鼠标运动时执行checkDirection 函数

stage.addEventListener(MouseEvent.MOUSE_MOVE, checkDirection);

}

第五步: Check Direction函数

下面的代码将检测鼠标方位,并将结果展示在舞台文本域上。

function
checkDirection(e:MouseEvent):void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

getHorizontalDirection();

getVerticalDirection();

dir.text = x:  + xDir + , y:  + yDir;

}

第六步:获取方位

检测鼠标的方向.

//水平方向

function getHorizontalDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

previousX = currentX; //检测刚刚的地址

currentX = stage.mouseX; //获取当前的地址

if (previousX currentX)       //将两个地址进行比较来确定方向

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = left;

}

else if (previousX currentX)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = right;

}

else

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = none;

}

}

//垂直方向

function  getVerticalDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

previousY = currentY; //检测刚刚的地址

currentY = stage.mouseY; //获取当前的地址

if (previousY currentY)    //将两个地址进行比较来确定方向

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = up;

}

else if (previousY currentY)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = down;

}

else

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = none;

}

}

第七步:运行函数

添加下面的代码来运行函数。当 getMouseDirection() 开始函数运行,就会建立一个可以启动方向指示器的鼠标运动事件监听器

getMouseDirection();

第八步:文档类版本

package

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

import flash.display.MovieClip;

import flash.text.TextField;

public class MouseMoveDemo extends MovieClip

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

public var previousX:Number = 0;

public var previousY:Number = 0;

public var currentX:Number = 0;

public var currentY:Number = 0;

public var xDir:String;

public var yDir:String;

public var dir:TextField = new TextField();

public function MouseMoveDemo()

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

getMouseDirection();

}

public function getMouseDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

dir.width = stage.stageWidth;

addChild(dir);

stage.addEventListener(MouseEvent.MOUSE_MOVE, checkDirection);

}

public function
checkDirection(e:MouseEvent):void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

getHorizontalDirection();

getVerticalDirection();

dir1.text = x: + xDir

dir2.text = y: + yDir;

}

public function getHorizontalDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

previousX = currentX;

currentX = stage.mouseX;

if (previousX currentX)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = left;

}

else if (previousX currentX)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = right;

}

else

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

xDir = none;

}

}

public function getVerticalDirection():void

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

previousY = currentY;

currentY = stage.mouseY;

if (previousY currentY)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = up;

}

else if (previousY currentY)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = down;

}

else

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

{

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/flash/)

yDir = none;

}

}

}

}

如果较之时间时间轴代码而更喜欢用文档类的话就选择上述的方法

你可以将这个类用在任何项目中以插入鼠标方向指示器。只需将整个类复制到新的AS文档中,将其保为MouseMoveDemo.as,,然后你可以用下面的使用下面的部分代码以作参考 :

var mouseMoveDemo:MouseMoveDemo= new  MouseMoveDemo();

addChild( mouseMoveDemo );

总结

这是个比较基础的例子,试着做做吧,并将它应用到你的项目中。

谢谢阅读。

讨论

来源:http://www.tulaoshi.com/n/20160216/1572184.html

延伸阅读
标签: 电脑应用
第一步: 打开FLASH,新建一个影片剪辑元件,命名为“星星”,在里面绘制一个星星出来,并且把它的中心点和舞台注册点对齐,在第20帧和第40处各插入一个关键帧。选中第20帧,在它的中心点和舞台的注册点对齐的情况下按住SHIFT键进行等比例缩小(你认为差不多就行了),然后选中第1到20帧的任意一帧创建补间动画...
标签: FLASH flash教程
因为最近要做一个项目,涉及到要输入文本,Flash的输入文本默认下是只能显示设备字体。连系统内的字体都不能设置,必须要嵌入才能输入。 as2的时代,可以用加载字体库的方式来解决,Adobe官方的解释太烦琐了,其实总结起来就是一个替换字体的过程,把外部库的自定义字体替换当前的输入字体。  例如如下: 如果是as2的话,新建一个Fla文...
标签: flash教程
本文由中国 sanbos 原创,转载请保留此信息! 本例讲解了使用AS代码制作鼠标跟随效果,让火苗跟着你的鼠标呈现出美丽的图形吧 效果演示: [next] 现在开始制作: 新建flash文档,背景色为黑色,其它默认。首先来画火苗: 新建图形元件,取名为:“火苗”,用椭园工具无填充,画一椭园: 如图: &n...
标签: FLASH flash教程
POLUOLUO核心提示:AS3教程:如何制作一个完整的loading. loading这个东西,说穿了其实是给用户反馈的一种表现形式,在客户端中的loading,通常以鼠标的手型变化来表现;而在web端,loading的创意则层出不穷了,而且给用户的反馈更好。本文将主要阐述在flash中制作loading的一些问题。 先来看看loading的原理。在flash中,制作loading的...
标签: FLASH flash教程
本例我们将开始学习AS的相关知识,不要被这个题目吓倒哦,AS的确是一种程序语言,我们编写AS代码就叫做编程,我们学习AS首先应该克服对编程的恐惧,所以在开始学习前,我们先廷着胸大声地说:"编程其实很容易" ActionScript是针对Flash Player的编程语言,它在flash内容和应用程序中实现了交互性、数据管理以及其它许多功能.那么我...

经验教程

148

收藏

29
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部