Flash AS3基础教程:如何用Flash AS3侦测鼠标的当前方位

所属分类: 媒体动画 / Flash教程 阅读数: 61
收藏 0 赞 0 分享

在这个教程中我这个教程中我们将学习如何用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
{
dir.width = stage.stageWidth; //文本区域的大小
addChild(dir); //在舞台上添加文本区域
//在舞台上添加一个鼠标事件监听器,并当鼠标运动时执行checkDirection 函数
stage.addEventListener(MouseEvent.MOUSE_MOVE, checkDirection);
}

第五步: Check Direction函数

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


复制代码
代码如下:
function
checkDirection(e:MouseEvent):void
{
getHorizontalDirection();
getVerticalDirection();
dir.text = ”x: ” + xDir + ”, y: ” + yDir;
}

第六步:获取方位

检测鼠标的方向.


复制代码
代码如下:
//水平方向
function getHorizontalDirection():void
{
previousX = currentX; //检测刚刚的地址
currentX = stage.mouseX; //获取当前的地址
if (previousX > currentX) //将两个地址进行比较来确定方向
{
xDir = “left”;
}
else if (previousX < currentX)
{
xDir = “right”;
}
else
{</p> xDir = “none”;
}
}
//垂直方向 <p></p> function getVerticalDirection():void
{
previousY = currentY; //检测刚刚的地址
currentY = stage.mouseY; //获取当前的地址
if (previousY > currentY) //将两个地址进行比较来确定方向
{
yDir = “up”;
}
else if (previousY < currentY)
{
yDir = “down”;
}
else
{ <p></p> <p>yDir = “none”;
}
}

第七步:运行函数

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


复制代码
代码如下:
getMouseDirection();

第八步:文档类版本


复制代码
代码如下:
package
{
import flash.display.MovieClip;
import flash.text.TextField;</p> <p>public class MouseMoveDemo extends MovieClip
{
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()
{
getMouseDirection();
}</p> <p>public function getMouseDirection():void</p> <p>{
dir.width = stage.stageWidth;
addChild(dir);
stage.addEventListener(MouseEvent.MOUSE_MOVE, checkDirection);
}
public function
checkDirection(e:MouseEvent):void
{
getHorizontalDirection();
getVerticalDirection();
dir1.text = “x: ” + xDir
dir2.text = “y: ” + yDir;
}
public function getHorizontalDirection():void
{
previousX = currentX;
currentX = stage.mouseX;<
if (previousX > currentX)
{
xDir = “left”;
}
else if (previousX < currentX)
{
xDir = “right”;
}
else
{
xDir = “none”;
}
}
public function getVerticalDirection():void
{
previousY = currentY;
currentY = stage.mouseY;
if (previousY > currentY)
{
yDir = “up”;
}
else if (previousY < currentY)
{
yDir = “down”;
}
else
{
yDir = “none”;
}
}
}
}

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

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


复制代码
代码如下:
var mouseMoveDemo:MouseMoveDemo= new MouseMoveDemo();
addChild( mouseMoveDemo );

总结

教程结束,以上就是用Flash AS3侦测鼠标的当前方位过程,教程比较基础,新手朋友可以试着做做吧,并将它应用到你的项目中。

更多精彩内容其他人还在看

FLASH CLASS的基本编写规范

继续回来写教程。本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!为啥?凑篇幅呗~啊哈哈~而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS,所以,还是用一节把CLASS的写法说一下。可能我对CLASS
收藏 0 赞 0 分享

flash教程:使用拆分数字和文字的函数

flash的小函数:拆分数字和文字的函数. 以下为引用的内容: /* * 拆分数字和文字 */ public function splitNS(s:String):Object{ var tNum:String=""
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例六

相关文章: 通过实例学习Flash AS3.0——案例五 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

用Flash AS制作逼真的下雨动画效果

Flash教程:用Flash AS制作逼真的下雨动画效果 先看下效果:(附.swf文件) 制作过程 一、新建一图层,大小随意; 二、新建元件(影片剪辑): 1、制作雨滴并下落。使用直线工具(颜色设为灰色,1像素)画一短直线,使用选择工具将直
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例五

相关文章: 通过实例学习Flash AS3.0——案例四 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

Flash CS3制作Fla形式的组件

  本文为大家介绍如何制作Flash CS3中的[*.fla]形式的的组件(Component)。这种组件和SWC组件不同,它和CS3自带的组件一样能够双击进入组件里面编辑,是Flash CS3新增加的一种组件形态。下面我们制作一个MyButton组件为例子。   制作步骤:
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例四

相关文章:通过实例学习AS3.0——案例三 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
收藏 0 赞 0 分享

通过实例学习flash AS3.0——案例二

相关文章:通过实例学习AS3.0 --案例一 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢
收藏 0 赞 0 分享

通过实例学习AS3.0——案例三

相关文章:通过实例学习flash AS3.0——案例二 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知
收藏 0 赞 0 分享

通过实例学习AS3.0

首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。 下面进入正题:
收藏 0 赞 0 分享
查看更多