Flash AS教程拖放动作和碰撞动作的详细说明

电脑杂谈  发布时间:2020-08-15 18:22:30  来源:网络整理

flash 鼠标拖动 碰撞_flash 如何代码实现鼠标拖动元件_flash鼠标拖动代码

注意: 以下教程都是在Flash MX版本下进行的!可以通过鼠标拖动Internet上经常看到的Flas中的某些对象. 例如,一些七巧板游戏(如七巧板,控制音量的滑块等)在闪光灯中使用拖动动作.

1. 拖放命令的详细介绍

1. 首先,介绍开始拖动命令的详细用法,然后在以下示例中对其进行测试.

命令格式: StartDrag(要拖动的影片剪辑,[是否锁定在鼠标位置的中心,向左,向上,向右,向下])

或写为

要拖动的影片剪辑. StartDrag([是否锁定到鼠标位置的中心,左,上,右,下]]

命令说明: 在制作的过程中,可以选择以上两种书写方法之一. 其中[]是可选参数,即可以写入还是不写入. 至于左,上,右和下四个参数,则用于控制所拖动对象的移动范围.

2. 停止拖动命令说明

命令格式: 拖动的影片剪辑实例的名称. stopDrag()

因此您可以停止拖动对象.

第二,示例说明

让我们使用一个简单的示例来尝试使用拖动命令.

步骤:

1. 创建一个新的Flash文档,并在舞台上画一个圆. 选择圆圈,然后按F8键将此圆圈转换为影片剪辑,并将其命名为: circle. 确认后,将在舞台上创建一个圆的实例. 如下图所示:

2. 选择此实例,然后按F9打开操作面板. 输入以下脚本:

打开(按){

flash鼠标拖动代码_flash 鼠标拖动 碰撞_flash 如何代码实现鼠标拖动元件

this.startDrag(true); //按下鼠标时,此实例(因为我们在实例本身中编写了脚本,因此此处使用它代替影片剪辑实例的名称)可以被拖动,使用上述命令. 对于参数的选择,此处仅填写对鼠标位置中心的锁定. 如果要选择不锁定鼠标位置的中心,则可以将true更改为false. 有兴趣的朋友可以将其更改为false以查看.

}

开启(发布){

this.stopDrag(); //类似地,释放(释放)鼠标时,拖动动作将停止.

}

脚本编写如下:

3. 好的,现在让我们按Ctrl + Enter进行测试. 您将看到圆圈在舞台上被鼠标拖动的效果.

4. 好的,通过此示例,我们可以简单地应用拖放操作. 现在我们需要继续这个例子. 还记得上面命令说明中控制拖动范围的left,top,right和bottom四个参数吗?现在让我们来限制拖动范围.

5. 现在,在舞台上绘制一个200 * 100大小的矩形,并注意不要填充边框. 如下图所示:

6. 如果我们希望在拖动时只能在矩形内拖动圆,则必须首先设置矩形的坐标,然后写下矩形的四个顶点的坐标(这很重要!). 好的,例如,此示例中矩形的四个顶点如上图所示. 然后我们要采用的四个参数应该是: left = 50,up = 100,right = 250,down = 200现在打开操作面板并立即修改脚本,如下所示:

打开(按){

this.startDrag(true,50,100,250,200); //在这里,我们使用刚确定的4个参数. 4点的参数实现了拖动对象上矩形区域的运动约束!

}

开启(发布){

this.stopDrag();

flash 鼠标拖动 碰撞_flash 如何代码实现鼠标拖动元件_flash鼠标拖动代码

}

脚本编写的最终效果如下:

7. 呵呵,等不及要测试您的结果了?好的,按Ctrl + Enter进行测试!

好吧,让我们在这里停止对拖动的解释,让我们学习如何结合拖动动作来检测对象之间的碰撞!不要走开: ) 3.碰撞命令说明

命令格式: 目标影片剪辑的实例. hitTest(拖动的实例)这是一个相对简单的碰撞检测命令

目标影片剪辑的实例. hitTest(被拖动实例的X轴坐标,被拖动实例的Y轴坐标,对象的矩形区域或对象本身的范围)这是检测碰撞命令的一个更复杂的点

命令说明: 以上两个命令用于检测冲突. 您可以根据需要选择不同的命令. 专注于解释对象矩形区域的范围和对象本身的范围(在上述命令中,false表示对象矩形区域的范围,true表示对象本身的范围). 有关详细信息,请参见下图:

四个. 碰撞命令和拖动命令的组合

(1),让我们通过一个简单的示例学习碰撞命令(我们首先学习如何检测它是否接触到对象的矩形区域)

1. 创建一个新的Flash文档,并在舞台上画一个圆. 选择圆圈,然后按F8键将其转换为影片剪辑,并将其命名为: circle. 这将在舞台上创建一个圆的实例. 如下图所示:

2. 选择该实例并为其命名,此示例称为: yuan如图所示:

3. 选择文本工具,然后将文本类型选择为“动态文本”,然后在圆实例下拖动并绘制一个动态文本框. 并创建一个变量名称: tt,如下所示:

flash 如何代码实现鼠标拖动元件_flash鼠标拖动代码_flash 鼠标拖动 碰撞

4. 选择时间轴的第一帧,按F9打开操作面板,然后输入以下脚本:

_root.onenterframe = function(){

//这是时间轴上的AS编写规则,被解释为对舞台上的每一帧执行以下脚本(onenterframe).

if(_root.yuan.hitTest(_root._xmouse,_root._ymouse,false)){

//根据上面命令的解释,这句话是为了检测碰撞. 如果鼠标触摸舞台上Yuan实例的矩形区域,则会执行以下脚本.

tt =“矩形接触面积”; //动态文本框显示“接触矩形面积的范围”

}其他{

tt =“不触摸矩形区域”; //如果鼠标没有触摸舞台上Yuan实例的矩形区域,则表明它没有触摸矩形区域.

}

}

第一帧上的最终完整脚本应如下图所示:

5. 确定,现在您可以按Ctrl + Enter来测试结果.

(2),拖放碰撞检测

现在让我们再举一个例子来说明拖动碰撞检测. 如果您想偷懒,可以通过修改上面的示例中的代码来学习.

1. 现在稍微修改上面的示例,以便我们可以学习拖放碰撞检测,在上面的示例的舞台上绘制一个矩形,然后将该矩形转换为名为的影片剪辑. 这样,将在舞台上创建另一个矩形实例,现在为该矩形实例创建一个名称: juxing. 如下图所示:

flash 鼠标拖动 碰撞_flash鼠标拖动代码_flash 如何代码实现鼠标拖动元件

2. 选择此矩形实例,打开操作面板,然后输入可以拖动该实例的脚本. 如下:

打开(按){

this.startDrag(true);

}

开启(发布){

this.stopDrag();

}

此脚本将能够拖动此矩形实例. 有关具体说明,请参阅第一个拖动对象示例的脚本描述.

3. 现在修改脚本,选择时间轴的第一帧,按F9打开操作面板,您将看到上一个示例的碰撞检测脚本,将其修改为以下脚本:

_root.onenterframe = function(){

如果(_root.yuan.hitTest(_root.juxing)){

tt =“我见过”;

}其他{

tt =“未遇到”;

}

}

此脚本与先前的碰撞检测脚本相似,不同之处在于无需编写X轴和Y轴,也无需编写是否接触矩形区域. 简单的^ _ ^

完整的脚本应如下图所示:

好,现在又是测试阶段,让我们观察一下结果〜

结束语: 我相信,如果您成功完成了以上示例(嘿,更多),您一定会精通拖动对象和碰撞检测的脚本. 在实际应用中,它们非常有用...


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-299582-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...