flash拖拽事件

合集下载

如何用Flash制作拖拽型游戏课件

如何用Flash制作拖拽型游戏课件

如何用Flash制作拖拽型游戏课件/摘要:本文介绍了如何使用脚本编程、按钮元件和动态文本,来制作拖曳型游戏课件。

关键词:flash;课件;教学在教学过程中,我们可以充分利用计算机的交互性、多媒体性和智能性,制作一些Flash游戏课件,使练习和测验活动变得更加生动有趣,从而提高学生的学习兴趣。

本文使用脚本编程、按钮元件和动态文本,来实现拖曳型游戏题的制作,下面以英语课件为例来说明其制作过程”flash player下载“。

一、课件介绍本实例制作的是一个英语拖拽型游戏课件。

课件运行时,用户可以拖拽动物图片到标记了动物名称的虚线方框中。

释放鼠标时,如果是正确的位置,图片就会停留在方框中,同时文本框中显示“You’reright”;否则图片就会返回,并且文本框中显示“Sorry,thepositioniswrong”。

另外,单击“重置”按钮,可以重新做题。

二、课件制作过程1.制作元件本课件中用到的按钮元件有“dog”“duck”“lion”和“重置”按钮,影片剪辑有“movie-dog”“movie-duck”“movie-lion”和“area”,其中“movie-dog”“movie-duck”“movie-lion”用于制作拖拽的对象,“area”用于制作拖放的区域。

(1)新建Flash文档。

单击“文件”菜单中的“新建”命令,新建一个Flash文档,设置影片大小为550×430像素,背景颜色为淡蓝色。

(2)创建“bt-dog”按钮元件。

按Ctrl+F8键,在创建新元件对话框中输入名称“bt-dog”,类型选择“按钮”。

进入按钮编辑区,选择“弹起”帧,导入一张小狗图片“dog.jpg”。

将图片分离,并用“套索工具”删除白色背景,再将处理后的图形组合。

注意要将图形对齐编辑中心点。

按照同样的方法,制作小鸭、狮子的按钮元件“bt-duck”和“bt-lion”。

(3)创建“重置”按钮,进入元件编辑区,制作一个颜色、大小变化的动态按钮。

Flash 鼠标拖拽

Flash 鼠标拖拽

Flash MX 2004基础实例(七)之鼠标拖拽语法讲解:FLASH帮助中的解释:on()可用性Flash 2。

在 Flash 2 中,不是所有的事件都受支持。

用法on(mouseEvent) {// 此处是您的语句}参数statement(s) 发生 mouseEvent 时执行的指令。

mouseEvent 是称作“事件”的触发器。

当发生此事件时,执行事件后面大括号中的语句。

可以为mouseEvent 参数指定下面的任何值:press 在鼠标指针经过按钮时按下鼠标按钮。

release 在鼠标指针经过按钮时释放鼠标按钮。

--------------------------------startDrag()可用性Flash Player 4。

用法startDrag(target,[lock ,left , top , right, bottom])target 要拖动的影片剪辑的目标路径。

lock 一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央 (true),还是锁定到用户首次单击该影片剪辑的位置上 (false)。

此参数是可选的。

--------------------------------stopDrag()可用性Flash Player 4。

用法stopDrag()参数无。

返回无。

说明函数;停止当前的拖动操作。

--------------------------------MovieClip.hitTest()可用性Flash Player 5。

用法my_mc.hitTest(x, y, shapeFlag)my_mc.hitTest(target)x 舞台上点击区域的 x 坐标。

y 舞台上点击区域的 y 坐标。

x 和 y 坐标都在全局坐标空间中定义。

target 可能与由 my_mc 指定的实例交叉或重叠的点击区域的目标路径。

target 参数通常表示一个按钮或文本输入字段。

shapeFlag 一个布尔值,指定是计算指定实例的整个形状 (true) 还是仅计算边框(false)。

flash拖拽游戏制作

flash拖拽游戏制作

用Flas‎h制作拖拽拼‎图游戏当你在别人‎的网页中看‎到一幅有趣‎的拼图时,是不是也很‎想亲自制作‎一个,放在自己的‎网页中呢?今天就和我‎一起来制作‎吧!制作拖拽拼‎图需要用到‎f lash‎中的三个对‎象:图片(Graph‎i c)、按钮(Butto‎n)和动画片段‎(Movie‎Clip)。

首先,打开Fla‎s h 5,新建一个文‎件。

选择“File→Impor‎t”或直接按C‎t rl+R来导入一‎张图片,并给它取名‎。

接着,用Ctrl‎+B将其打散‎,再用工具把‎图片切割开‎,这样就形成‎了两个分离‎的碎片(如图1)。

图1有了碎片以‎后,我们就可以‎开始制作按‎纽了。

选中左边的‎碎片,按下F8键‎,在弹出的窗‎口中建立一‎个新的对象‎,命名为p1‎。

同样,将右边的碎‎片也建立为‎对象,命名为p2‎。

接下来,我们按Ct‎r l+L弹出图符‎库(Libra‎r y),选取New‎Symbo‎l s(左下角的加‎号图标),在弹出的窗‎口中输入b‎1,选取Beh‎a vior‎为Butt‎o n。

现在,我们就可以‎定义被拖拽‎的按钮了。

将已经制作‎好的对象p‎1拖到按钮‎的Up状态‎处就可以了‎,完成后的时‎间区如图2‎。

这样,我们就生成‎了一个不会‎变化的按钮‎。

用同样的方‎法把对象p‎2制作为按‎钮b2。

下面,我们就要制‎作最关键的‎动画片段(Movie‎Clip)了。

首先,用上面的方‎法在Lib‎r ary窗‎口中添加一‎个新对象,命名为m1‎,将Beha‎v ior设‎为Movi‎e Clip。

再把我们制‎作好的按钮‎b1拖到这‎里来。

同样,用b2生成‎一个动画片‎段m2。

接着,我们将m1‎和m2放到‎工作区中,再将p1也‎放上去。

然后右击p‎1,在弹出的快‎捷选单中选‎择Effe‎c t,来调整颜色‎属性。

图2用上面的方‎法将p2也‎拖到工作区‎中,调整成同样‎的颜色。

最后把p1‎和p2吻合‎起来。

Flash编程(AS2.0)教程--事件处理

Flash编程(AS2.0)教程--事件处理

Flash编程(AS2.0)教程--处理事件事件,是推动Flash程序运行的灵魂,可以说,没有事件就没有Flash程序,真是因为有了丰富的事件,Flash程序的交互性才能够得以实现。

开发Flash程序时,我们需要花很大一部分精力去估计程序应该处理哪些事件以及如何处理这些事件。

比方说对一个按钮,我们是不是只需要处理一下用户单击按钮所触发的事件?如果需要按钮对用户的更多操作作出反应,那么我们就需要添加相应的事件处理代码。

Flash程序可以处理的事件可谓多如牛毛,我们显然不能可能将他们一个一个罗列出了讲个所以然,其实这些事件的名称、作用和处理方法是相似的,只要掌握基本的原理,就可以一通百通。

最重要的并不是了解每个事件的细节,而是要学会根据自己需要完成的程序所具有的功能选择适当的事件并进行处理。

在第1章的实例中,我们已经使用代码处理了一个Press事件,事件处理代码的结构都是一样的,用自然语言来描述就是:2.1鼠标和键盘事件鼠标事件可以说是应用最多的事件了,所以我们就从鼠标事件下手来看看当用户在屏幕上挥动鼠标时,Flash应该如何作出反应。

2.1.1鼠标按下(on(press))如果某个界面元素(比如一个按钮或者一个影片剪辑的实例)的代码中含有on(press)这样的事件处理代码,那么当用户在这个界面元素上按下鼠标时,on(press)后面的大括号中的代码就会被执行。

2.1.2鼠标释放(on(release))这个事件在鼠标健释放的时候发生,这个事件通常都是在on(press)之后发生的,有press才能有release嘛!举个例子来说,当我们需要处理用户单击某个按钮的事件时,就可以为这个按钮添加一个on(release)事件处理。

尽管在这种情况下on(press)和on(release)的作用是相似的,因为通常press 之后总会release,但是我们还是应当尽量使用on(release),为什么呢?因为如果使用on(press)会让你的按钮“过于敏感”——轻轻一按,代码立刻就被执行了,如果用户发现自己按错了,可就没有后悔药吃了。

flash动作脚本-动态文本框、影片剪辑的拖拽、流程控制与循环语句

flash动作脚本-动态文本框、影片剪辑的拖拽、流程控制与循环语句

flash动作脚本-动态文本框、影片剪辑的拖拽、流程控制与循环语句四、动态文本框一、flash 中的动态文本使用方法在flash中,文本工具提供了三种文本类型。

分别是:静态文本、动态文本和输入文本。

下面讲解的内容属于动态文本的AS 编写规则。

要创建一个动态文本非常简单,只需要选中文本工具,然后选择动态文本类型,然后在舞台上拖拽出所需要的动态文本框就行了。

二、如何为动态文本赋值当在舞台上拖拽出动态文本框之后,可以直接在里面进行文本输入或粘贴外部文本内容。

那么用AS 如何来对动态文本框赋值呢?在这里为大家介绍两种方法进行赋值!1、使用动态文本的实例名字来赋值操作步骤:(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个名字,例如abc(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:abc.text = "爱国者安全网"按下ctrl+回车就可进行测试了。

从这个简单的例子可以知道,如果要用文本实例名字来进行赋值的话,必须使用以下格式:动态文本实例的名字.text=”需要赋值的内容”2、使用变量来赋值(1)在舞台上创建一个动态文本框,并为这个动态文本实例起一个变量名3800hk。

(2)选中时间轴的第一桢,打开动作面板,输入以下脚本:3800hk= "欢迎大家来到爱国者安全网学习!"不难看出,使用变量赋值更为简单实用!赋值格式为:变量名=“赋值的内容”以上两种赋值方法如果内容过多需要换行的时候,需要使用行用回车符(“\r”即ASCII13)分隔!三、如何载入外部txt 文本里的内容当内容过多的时候,使用上面的方法并不是太好,我们可以使用下面的方法,从外部获取文本资料内容!而外部的资料内容就放在一个普通的txt(记事本)文件中。

具体操作步骤如下:1、创建一个动态文本实例,并为这个动态文本实例起一个变量名hk2、选中时间轴的第一桢,打开动作面板,输入以下脚本:loadVariablesNum("heiying.txt", 0);//载入外部名字叫heiying.txt 的文本文件,加载级别为03、现在来准备外部的heiying.txt 文本文件了。

如何用Flash制作拖拽型游戏课件

如何用Flash制作拖拽型游戏课件

如何用Flash制作拖拽型游戏课件作者:李微来源:《成才之路》2011年第22期摘要:本文介绍了如何使用脚本编程、按钮元件和动态文本,来制作拖曳型游戏课件。

关键词:Flash;课件;教学在教学过程中,我们可以充分利用计算机的交互性、多媒体性和智能性,制作一些Flash 游戏课件,使练习和测验活动变得更加生动有趣,从而提高学生的学习兴趣。

本文使用脚本编程、按钮元件和动态文本,来实现拖曳型游戏题的制作,下面以英语课件为例来说明其制作过程。

一、课件介绍本实例制作的是一个英语拖拽型游戏课件。

课件运行时,用户可以拖拽动物图片到标记了动物名称的虚线方框中。

释放鼠标时,如果是正确的位置,图片就会停留在方框中,同时文本框中显示“You’re right”;否则图片就会返回,并且文本框中显示“Sorry,the position is wrong”。

另外,单击“重置”按钮,可以重新做题。

二、课件制作过程1. 制作元件本课件中用到的按钮元件有“dog”“duck”“lion”和“重置”按钮,影片剪辑有“movie-dog”“movie-duck”“movie-lion” 和“area”,其中“movie-dog”“movie-duck”“movie-lion”用于制作拖拽的对象,“area”用于制作拖放的区域。

(1)新建Flash文档。

单击“文件”菜单中的“新建”命令,新建一个Flash文档,设置影片大小为550×430像素,背景颜色为淡蓝色。

(2)创建“bt-dog”按钮元件。

按Ctrl+F8键,在创建新元件对话框中输入名称“bt-dog”,类型选择“按钮”。

进入按钮编辑区,选择“弹起”帧,导入一张小狗图片“dog.jpg”。

将图片分离,并用“套索工具”删除白色背景,再将处理后的图形组合。

注意要将图形对齐编辑中心点。

按照同样的方法,制作小鸭、狮子的按钮元件“bt-duck”和“bt-lion”。

(3)创建“重置”按钮,进入元件编辑区,制作一个颜色、大小变化的动态按钮。

flash 拖动图片

flash 拖动图片

实训17:拖动图片1、实训目的与要求本实例将学习一个新的脚本,在制作的动画中通过拖拽鼠标就可以任意将图片移动到最前面。

2、实训内容根据所学知识,综合运用制作如课本所示的动画效果。

3、实验步骤实验题目拖动图片01单击“文件”|“新建”命令,新建一个基于ActionScript2.0 的Flash文件。

按【Ctrl+J】组合键,打开“文档属性”对话框,设置编辑区的大小为550像素×400像素,帧频为12fps、背景颜色为白色。

02将素材图片imag1.jpg~ imag5.jpg和18.jpg导入到库中。

03将图片18.jpg从“库”面板中拖到舞台中,并设置其大小为600像素×450像素。

在“对齐”面板中设置图片水平中齐和垂直中齐,按【Ctrl+B】组合键将图片打散,效果如图5-131-1所示。

04按【Ctrl+F8】组合键,新建一个名为1的影片剪辑元件,然后在舞台中绘制一个边框为黑色、填充颜色为白色的矩形,如图5-131-2所示。

05新建图层2,将图片imag1.jpg 拖入到舞台中。

设置图片大小为280像素×190像素并调整其位置。

按【Ctrl+B】组合键将图片打散,效果如图5-131-3所示。

06参照步骤4和步骤5的操作方法,新建影片剪辑元件2~5,分别将图片imag1.jpg~ imag5.jpg 拖入到元件2~5 中,然后进行适当的调整07返回到主场景,新建图层2,并将影片剪辑元件1~5从“库”面板中拖入到舞台中,效果如图5-131-4所示。

08分别选择影片剪辑元件1~5的实例,然后依次在“动作-影片剪辑”面板中输入脚本语句。

09 按【Ctrl+S】组合键,为名“拖动图片”保存文件,然后按【Ctrl+Enter】组合键测试动画效果。

4、实训总结mx.behaviors.DepthControl.bringToFront(this)的作用为将影片移到最前面。

flash拖动与碰撞检测

flash拖动与碰撞检测

第五节拖动与碰撞检测AS的一个重要优势就是可以实现交互动画,一些特效不用AS也是可以做出来的,但交互的动画不用AS则是无法实现的。

拖动MC则是交互动画的一个例子。

startDrag() 函数或 MovieClip.startDrag() 方法:使用startDrag()可以实现拖动效果。

格式:MC.startDrag(一个布尔值,左边,上边,右边,下边);这个方法中的所有参数都是可选的,即可要可不要。

下面介绍一下这些参数:一个布尔值:true或false。

当设定为true时鼠标位置将锁定在要拖动的MC的注册点上。

想一想我们要自定义鼠标指针,这个参数是不是很有用呢?后面的4个边,确定了MC可以被拖动的范围。

想一想我们要做一个控制滑条这几个参数是不是很有用呢?下面练习一下:自定义鼠标指针:新建一个MC,画一个或找一个你喜欢的鼠标图形,图形应该有一个较尖的部位作为针尖吧?将这个针尖与窗口中的十字对齐。

回到主场景,将这个MC拖到舞台上,打开属性面板,实例名称为:mouse_mc;打开帧动作面板输入:Mouse.hide();mouse_mc.startDrag(true);测试影片,你会发现你的鼠标已经变成你喜欢的图形了。

stopDrag()方法:上面介绍了开始拖动MC的方法,开始拖动总得有停止拖的时候啊,这个方法就是停止拖动。

我们回想一下拖动一个MC的过程,一般来说,都是点下鼠标左键不放,就可以拖动了,放开鼠标后就停止拖动,是这样的吧?所以一般将startDrag()放到MC的onPress事件(点下鼠标时)中,而将 stopDrag()放到onRelease事件(放开鼠标时)中。

滑动控制条:有时我们会用到滑动控制条,比如控制音量大小,播放进度等。

那么滑块就需要用到拖动的方法。

用矩形工具画一个细长的矩形,笔触填充公随你喜欢,要不要都行,至少要一个吧?将它转换为MC,双击它进入编辑状态,打开对齐面板选择相对于舞台,左对齐,回到主场景,打开属性面板,实例名称为blt_mc。

flash拖拽事件

flash拖拽事件

Flash拖拽事件的简便使用清单如下:启动类:tttpackage{import flash.display.Sprite;import flash.events.MouseEvent;public class ttt extends Sprite{private var me:ttt;private var ballV:Array = [];public function ttt(){me = this;var i:int = 0;while(i<15){var b:Ball = new Ball(i)me.addChild(b);ballV.push(b);b.addEventListener(MouseEvent.MOUSE_DOWN,onBallDown);i++;}flushXY();DragManager.init(stage);}/*** 当down的时候就把要检测的碰撞数组传入* @param event**/private function onBallDown(event:MouseEvent):void{DragManager.getInst().setHitObj(ballV,event.currentTarget,hitBack);}/*** 鼠标up的时候的回调* @param hitMC 被碰撞的原件* @param targetMC 拿去检测碰撞的原件* @return**/private function hitBack(hitMC,targetMC){if(!hitMC){return;}var hitMCIndex:int = ballV.indexOf(hitMC);ballV.splice(ballV.indexOf(targetMC),1)ballV.splice(hitMCIndex,0,targetMC);flushXY();}private function flushXY(){var i = 0;while(i<ballV.length){var b = ballV[i];b.x = 50 + Data.CircleSpX*int(i%8);b.y = 50 + Data.CircleSpY*int(i/8);i++;}}}}//***包外类生成一个圆形方便测试*/import flash.display.Sprite;import flash.geom.ColorTransform;import flash.text.TextField;class Ball extends Sprite{var me:Ball;var index:int = 0;function Ball(id){me = this;var t:TextField = new TextField;t.text = id + "";me.addChild(t);t.width = t.height = 20;me.graphics.beginFill(uint(Math.random()*0xffffff));me.graphics.drawCircle(Data.CircleWidth,Data.CircleWidth,Data.CircleWidth);me.graphics.endFill();}}********************************************************************************拖拽事件的封装类DragManager.aspackage{import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.Stage;import flash.events.MouseEvent;import flash.geom.Matrix;import flash.geom.Rectangle;/*** 检测碰撞类* @author Ruien.Wu*/public class DragManager{public static var me:DragManager;private static var stage:Stage;/**复制的截图*/private var icon:Bitmap;/**检测碰撞的目标数组 */private var targetArr:Array;/**拖拽的对象*/private var dragObj:*;/**回调函数*/private var callBack:Function;/**可拖拽面积*/private var arenaRect:Rectangle;public function DragManager(){if(me){throw new Error("不能被实例化");}}/*** 初始化舞台*/public static function init(stg:Stage){stage = stg;}public static function getInst():DragManager{if(!me){me = new DragManager;}return me;}/*** 设置碰撞的数据* @param _tagetArr 目标数组,即要检测拖拽碰撞的对象数组* @param _dragObj 拖拽的对象* @param _func 回调* @return**/public function setHitObj(_tagetArr:Array,_dragObj,_func:Function){ targetArr = _tagetArr;dragObj = _dragObj;callBack = _func;if(dragObj.visible){dragObj.visible = false;}showIcon(dragObj);}/*** 设置参数* @param arena 可拖拽面积* @return**/public function setData(arena:Rectangle = null){if(arena){arenaRect = arena;}}/*** 创建个icon*/private function showIcon(obj):void{icon=createIcon(obj);icon.x=stage.mouseX-icon.width/2;icon.y=stage.mouseY-icon.height/2;stage.addChild(icon);stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);stage.addEventListener(MouseEvent.MOUSE_UP,onUp);}/*** 鼠标up*/private function onUp(e = null):void{var hitMC = checkHitArena(targetArr,icon);dragObj.visible = true;callBack(hitMC,dragObj);stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);stage.removeEventListener(MouseEvent.MOUSE_UP,onUp);removeAll();}/*** 移动*/private function onMove(event:MouseEvent):void{icon.x=stage.mouseX-icon.width/2;icon.y=stage.mouseY-icon.height/2;if(arenaRect){if(arenaRect.x >icon.x){//左边icon.x = arenaRect.x;}if(icon.x>arenaRect.x + arenaRect.width){//右边icon.x = arenaRect.x + arenaRect.width;}if(icon.y<arenaRect.y){//上边icon.y = arenaRect.y}if(icon.y>arenaRect.y + arenaRect.height){//下面icon.y = arenaRect.y + arenaRect.height;}}}/*** 检测碰撞* @param target 目标数组* @param drag 拖拽的icon* @return**/private function checkHitArena(target:Array,drag:Bitmap):*{ var arenaArr:Array = [];for each(var m in target){if(drag.hitTestObject(m)&&m!=dragObj){return m;}}return null;}/*** 删除全部**/private function removeAll():void{if(icon){icon.bitmapData.dispose();stage.removeChild(icon);icon=null;}dragObj = null;targetArr = null;}/*** 创建个截图*/private function createIcon(sp):Bitmap{var b:Bitmap = new Bitmap;var realWidth:Number = sp.width/sp.scaleX;var realHeight:Number = sp.height/sp.scaleY;var mArr:Array = getMinXY(sp);var mBit:BitmapData = new BitmapData(realWidth,realHeight, true, 0);mBit.draw(sp,new Matrix(1,0,0,1,-mArr[0],-mArr[1]));b.bitmapData = mBit;b.width = sp.width;b.height = sp.height;return b;}/*** 获取最少坐标指,用于matrix* @param sp* @return**/private function getMinXY(sp):Array{var xArr:Array = [];var yArr:Array = [];for(var i:int = 0;i<sp.numChildren;i++){xArr.push(sp.getChildAt(i).x);yArr.push(sp.getChildAt(i).y);}xArr.sort(16);yArr.sort(16);return [xArr[0],yArr[0]];}}}*********************************************************************************** ***************************************************通过将mouseDown和mouseUp事件的封装,可以减少程序的逻辑判断,使代码简洁方便阅读。

FLASH如何用鼠标左右拖拽,物体平行360度旋转

FLASH如何用鼠标左右拖拽,物体平行360度旋转
var frame:Number=mc.currentFrame;//当前是第几帧
stage.addEventListener(MouseEvent.MOUSE_DOWN,mdown);
stage.addEventListener(MouseEvent.MOUSE_UP,mup);
function mdown(e:MouseEvent):void {
}
这个是AS3的代码 如果是AS2的话再补充,如果元件的实例名不方便为mc的话,可以改成别的,不过代码中的所有mc都要替换成新的名称其实像做这种3D的东西,如果楼主代码基础好的话,可以参考下PV3D的资料,功能非常强大!
newX=e.stageX;
stage.addEventListener(MouseEvent.MOUSE_MOVE,mmove);
}
function mup(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mmove);
首先 你先把这36张照片做到一个影片剪辑元件中,该元件第一帧停止然后把这个元件拖到舞台上,命名为mc然后在第一帧加入如下代码:
var speed:Number=0.1;//速度参数,修改次参数可以调整速度
var long:int=mc.totalFrames;//总帧数
var newX:Number;
frame=long+frame+(e.stageX-newX)*speed;
}
else {
frame=long-Math.abs(frame+(e.stageX-newX)*speed)%long;

falsh移动对象方法

falsh移动对象方法

falsh移动对象方法
在Flash中移动对象有两种主要方法:
方法一:
1. 首先选择要移动或复制的对象。

2. 选择“编辑”菜单选项卡,在弹出的下拉菜单中选择“剪切”或“复制”命令。

如果要移动则选择“剪切”命令,如果要复制则选择“复制”命令。

3. 然后再选择“编辑”菜单下的“粘贴到中心位置”命令即可。

方法二:
1. 选择选取工具将指针放在对象上。

2. 若要移动对象,请将其拖到新位置。

3. 要复制对象并移动副本,可以按住Alt 键(Windows) 或者按住Option
键(Macintosh) 拖动。

4. 若要将对象的移动方向限制为45 度的倍数,请在按住Shift 的同时拖动。

以上方法仅供参考,如有需要,建议查阅Flash软件操作指南或向专业人士寻求帮助。

FLASH课件中拖曳题的设计实现

FLASH课件中拖曳题的设计实现
片 , 求 用户 用 鼠标拖 曳 窗 口上 的 1 要 2个 硬件 部件 分类 到 指定 的箱 子里 , 如果 分 类 正确 , 出现 “ 喜你 !答 对 恭
了 !并 燃 放烟 花 , 图 1 图 2 示 。单击 “ 来 ” ” 如 、 所 重 按钮 , 课 件 返 回到初 始 状态 。
部 件拖 曳 分类 课件 设 计为 依据 ,简述 F As 课 件 制作 中拖 曳题 类课 件 的设 计过 程及 实现 方 法。 L H
【 键 词 】 F H,拖 曳 题 , 设 计 实 现 关 I AS
中 图 分 类 号 :T 1 . 8 P37 4 文 献 标 识 码 :A
AB T S RACT I k n r g d o e t g c u s wa e,Fls a t n o n ma i g d a - r p t s i o r e r n a h h s i i c mp r b e a v n a e n m a i g t a h n o t r . Th s s a a l d a t g s i k n e c i g s fwa e i
例 , 述 利 用 F ah制 作 拖 曳题 课 件 的设 计 过 程 及 实 简 ls
现 方法 。
② 新 建 一个 名字 为 “ 花 燃放 ” 烟 的影 片剪 辑 元 件 ,
在 这 个元 件 中 , 建烟 花燃 放动 画效果 。 正确 进行 设 创 在
备 分类 后 , 进行 烟 花燃放 效 果 。
b i a r m e a Fl s y Us ng M c o di a h
陈 雄 山
( 东省对 外 贸 易职业技 术 学校 广 州 5 0 2 ) 广 1 5 0
【 摘 要】 在 制作 拖 曳题 类型课 件 方 面 ,F ah具有 其他 课件 制 作软 件不 可 比拟 的优势 ,以一个 计算机 硬 件设 备 ls

flash中startdrag的用法

flash中startdrag的用法

flash中startdrag的用法
startDrag() 方法可以启动物体的拖动。

使用此方法将使物体跟随鼠标位置进行拖动。

语法:
startDrag([lockcenter], [left], [top], [right], [bottom])
参数说明:
lockcenter:布尔类型。

值为true 时,拖动物体时将锁定其中心点;值为false 时,拖动物体时将按鼠标位置移动。

left:数值类型。

物体拖动时允许到达的最左边位置(以像素为单位)。

top:数值类型。

物体拖动时允许到达的最上方位置(以像素为单位)。

right:数值类型。

物体拖动时允许到达的最右边位置(以像素为单位)。

bottom:数值类型。

物体拖动时允许到达的最下方位置(以像素为单位)。

示例:
var my_mc:MovieClip = new MovieClip();
my_mc.graphics.beginFill(0xFF0000);
my_mc.graphics.drawRect(0, 0, 100, 100);
addChild(my_mc);
my_mc.addEventListener(MouseEvent.MOUSE_DOWN, drag); function drag(evt:MouseEvent):void {
my_mc.startDrag();
}
该示例中,创建了一个红色的矩形MovieClip,并向其中添加了一个鼠标按下事件监听器。

在事件处理函数中,调用startDrag() 方法,使该矩形运动到鼠标位置。

鼠标拖动物体的FLASH动画制作教案

鼠标拖动物体的FLASH动画制作教案

鼠标拖动物体的FLASH动画制作教案一、教学目标1. 让学生了解和掌握FLASH动画制作的基本知识。

2. 培养学生运用FLASH软件制作鼠标拖动物体的动画能力。

3. 提高学生创新意识和团队协作能力。

二、教学内容1. FLASH动画制作基本概念2. FLASH软件界面及功能介绍3. 鼠标拖动物体的FLASH动画制作流程4. 鼠标拖动物体动画的关键技术5. 动画作品的展示与评价三、教学重点与难点1. 教学重点:FLASH动画制作的基本操作,鼠标拖动物体动画的制作流程。

2. 教学难点:鼠标拖动物体动画的制作技巧,动画作品的创新设计。

四、教学方法1. 采用案例教学法,让学生通过模仿案例来掌握FLASH动画制作技巧。

2. 采用任务驱动法,让学生在完成具体任务的过程中,学会鼠标拖动物体动画的制作。

3. 小组合作学习,培养学生团队协作能力和创新能力。

五、教学准备1. 教师准备FLASH软件、教学案例及素材。

2. 学生准备笔记本电脑或平板设备,安装FLASH软件。

3. 网络环境,用于展示和分享作品。

六、教学过程1. 导入新课:通过展示一个鼠标拖动物体的FLASH动画案例,激发学生的学习兴趣。

2. 讲解FLASH动画制作基本概念,介绍FLASH软件界面及功能。

3. 讲解鼠标拖动物体的FLASH动画制作流程,包括:设计角色、制作动画、添加音效等。

4. 示范制作一个简单的鼠标拖动物体动画,讲解制作过程中的关键技术。

5. 学生动手实践,模仿案例制作自己的鼠标拖动物体动画。

6. 学生互相交流、讨论,解决制作过程中遇到的问题。

7. 教师巡回指导,针对学生的作品进行点评,提出改进意见。

8. 学生根据点评意见,修改完善自己的作品。

9. 组织学生进行作品展示,互相评价,选出优秀作品。

七、课后作业1. 制作一个有趣的鼠标拖动物体FLASH动画。

3. 观察并思考如何在动画作品中融入更多的创新元素。

八、教学评价1. 学生作品的创意性、技术性和完成度。

flash拖拽动画

flash拖拽动画
?当鼠标按下press之后这个实例因为我们把脚本写在实例本身了所以这里用this代替影片剪辑实例的名字可以被拖拽使用命令如上面的命令解释
flash拖拽动画

经常看到的flash影片中有的对象可 以被鼠标进行拖动。例如有的类似 七巧板的拼图游戏,控制音量的滑 杆等,所使用的就是flash中的拖拽 动作。

on
(release) {this.stopDrag();}
同样道理,当鼠标释放(release) 之后,将停止拖拽动作。
3、好了,现在让我们按Ctrl+回车 来测试一下吧,你将会看到舞台上 的圆被你的鼠标拖动的效果。 4、通过这个例子我们可以简单的 应用拖拽动作了。现在需要把这个 例子继续完成,还记得上面命令讲 解中的左,上,右,下四个控制拖 动范围的参数吗?现在来制作具有 约束拖动范围的效果。

椭圆工具:绘制任意大小的椭圆或圆。 矩形工具:绘制任意大小的矩形、圆角 矩形或正方形。 铅笔工具:绘制任意形状和任意长短的 曲线。 刷子工具:绘制任意形状的大小的矢量 色块。 任意变形工具:对舞台中的对象进行任 意变形、旋转和缩放。

填充变形工具:对填充的颜色进行 旋转、缩放、翻转等操作。 墨水瓶工具:填充或改变对象的边 框线属性。 颜料桶工具:改变矢量色块的填充 颜色或填充封闭的线条内部区域。
on
(press) {this.startDrag(true, 50, 100, 250, 200);} 这里我们就使用刚才确定好的4个参数。 4个点的参数就对拖动对象实现了一 个矩形区域的移动约束!
on
(release) {this.stopDrag();}
测试
注意在元件编辑区和舞台中的坐标

解决交互flash中拖拽滞后的现象

解决交互flash中拖拽滞后的现象
flash拖拽滞后现象剪力滞后现象flash交互设计flash交互动画教程flex与flash交互flash交互flash交互式动画flash交互动画交互式flash
解决交互flash中拖拽滞后的现象
在交互flash中,如果拖动太快就会有滞后现象。尤其表现在快速拖动一个点时,与之相连的那条线就会断开。程序越复杂,这种现象就越明显。
由于是拖拽,所以习惯使用startdrag/stБайду номын сангаасpdrag,所以问题一直存在;但换一种思路,分解为拖拽时赋鼠标坐标值后,问题就得到了解决。
下面的实例中红线的端点在快速拖拽时会与之断开,而兰线则不会有问题。

Flash代码如何实现鼠标拖拽效果

Flash代码如何实现鼠标拖拽效果

Flash代码如何实现鼠标拖拽效果Flash新手入门,鼠标不懂操作AS代码效果。

下面店铺整理了Flash代码如何实现鼠标拖拽效果,希望能帮到大家O(∩_∩)O哈哈~ 接下来,我们以母鸡下蛋为例子。

Flash代码如何实现鼠标拖拽效果一、制作方法:1、新建Flash文档,背景色青色。

2、新建一个电影剪辑,命名为MC。

第一层插入一个关键帧,第一帧画母鸡,全居中;第二帧画蛋,全居中。

新一个层插入一个空白关键帧,两个关键帧都加上帧动作stop(); 。

3、回到主场景,从库中把MC拖到舞台,放在靠左的位置,选中MC,打开“动作-电影剪辑”面板,输入脚本:on (press) {startDrag(this);var newdepth = this._parent.getNextHighestDepth();var newname = "copy" + newdepth;var prevname = "copy" + (newdepth-1);if (this._parent[prevname] == undefined) this._parent[prevname] = this;this.duplicateMovieClip(newname,newdepth);this._parent[newname]._x = this._parent[prevname]._x + 0;this._parent[newname]._y = this._parent[prevname]._y + 0;}on (release) {stopDrag();}on (dragOut) {this.gotoAndStop("2");}on (releaseOutside) {stopDrag();}4、加上自己喜欢的文字或装饰,测试,存盘。

以上步骤和方法小编真心希望能解决你的问题。

flash事件和事件处理函数

flash事件和事件处理函数

基本命令和程序结构控制
(一)时间轴控制命令 1、gotoAndPlay 一般形式:gotoAndPlay(场景,帧); 作用:跳转并播放,跳转到指定场景的指定帧,并从 该帧开始播放,如果没有指定场景,则将跳转到当前 场景的指定帧。 参数:scene,跳转至场景的名称;frame,跳转至帧 的名称或帧数。 有了这个命令,我们可以随心所欲地播放不同场景, 不同帧的动画。 例:当我们单击被附加了gotoAndPlay动作按钮时,动 画跳转到当前场景第16帧并且开始播放: on(release){ gotoAndPlay(16); } 例:当我们单击被附加了gotoAndPlay动作按钮时,动 画跳转到场景2第1帧并且开始播放: on(release){ gotoAndPlay("场景2",1); }
拖拽影片剪辑命令
我们在Flash动画中,可以让我们的鼠标突然变成一个美丽的动物图画,或者我们 可以任意搬动动画中的物体,这些Flash动画效果是怎么实现的呢?那就得用上两个 成对出现的命令:“startDrag()”拖拽影片和“stopDrag()”停止拖拽影片。如果我 们要做课件,这两个命令可是不能少的了。 startDrag()命令的一般形式为: startDrag(target,lock, left, top, right, bottom); target 要拖动的影片剪辑的目标路径,lock表示影片拖动时是否中心锁定在鼠标,值 有true或false,true表示锁定,false表示不锁定。 left,top,right,bottom这四个参数分别设置影片拖动的左,上,右,下的范围,注意是 相对于影片剪辑父级坐标的值,这些值指定该影片剪辑被约束的矩形。并且这些参数 是可选的
事件和事件处理函数 Flash中的事件包括我们事件和系统事件两类。我们事件是指我们直接交互操作而产 生的事件。例如鼠标单击或按下键盘键之类的事件。系统事件是指Flash Player自动 生成的事件,它不是由我们直接生成的。例如影片剪辑在舞台上第一次出现或播放 头经过某个关键帧。一般情况下,在以下几种情况下会产生事件: 当在时间轴上播放到某一帧时。 当某个影片剪辑载入或卸载时。 当单击某个按钮或按下键盘上的某个键时。 为使应用程序能够对事件做出反应,必须编写相应的事件处理程序。事件处理程序 是与特定对象和事件关联的动作脚本代码。例如,当我们单击舞台上的一个按钮时, 可以将播放头前进到下一帧

flash制作拖曳配对题

flash制作拖曳配对题

拖曳配对题是一种常见的交互题型,如果将设定的物体拖到目标位置,物体会停在指定区域,如果没有到达目标区域,还能自动返回初始位置。

学生在完成这种题目时,感觉像在玩游戏,可谓是“在玩中学,在学中玩”,学习效果也就比较显著。

本文笔者为大家介绍如何使用Flash拖拽功能制作单词与实物匹配课件。

第一步,打开Flash MX 2004,新建一个Flash文档,大小设为600×400象素,并选择一个合适的背景颜色,其它设置保持不变。

第二步,选择工具箱中的“文本工具”按钮,打开属性面板,字体选择“Arial”,大小设为80象素,颜色选择蓝色,如图1所示。

第三步,在场景的第一帧,输入内容为“dog”的静态文本,并调整好位置。

然后按“Ctrl+B”将文字打散,再按“Ctrl+G”组合,把静态文本转换成组。

选择工具箱中的“文本工具”按钮,在文字的下方输入一个括号,并调整好位置。

第四步,选择工具箱中的“矩形工具”按钮,在括号中绘制一个矩形,然后选中矩形,按F8键,在弹出的“转换为符号”对话框中,把矩形转换成名为“dog”的影片剪辑元件,注册点设在中心,如图2所示。

打开属性面板,把实例名称设置为“dog”,透明度(Alpha)设置为0,这样在场景中会看不到这个矩形。

矩形将作为搭配的对象,拖动图片到括号中,其实就是将图片与其接触而获得反馈。

用相同的方法完成另一个文本“pig”与矩形的编辑,只是把矩形的实例名称设为“pig”,其它类同,本文不再赘述。

第五步,选择“文件→导入→导入到库”命令,把事先准备好的图片导入到库中。

按“Ctrl+L”组合键打开“库”面板,把“dog”位图文件拖入场景。

选中图片,按F8键,在弹出的“转换为符号”对话框中,将其转换成名为“gou”的影片剪辑元件,注册点设在中心,如图3所示。

打开属性面板,把实例名称设置为“gou”,宽高分别设为100,80象素,X、Y设为240,280象素。

(为了方便控制图片的初始位置)。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Flash拖拽事件的简便使用清单如下:启动类:tttpackage{import flash.display.Sprite;import flash.events.MouseEvent;public class ttt extends Sprite{private var me:ttt;private var ballV:Array = [];public function ttt(){me = this;var i:int = 0;while(i<15){var b:Ball = new Ball(i)me.addChild(b);ballV.push(b);b.addEventListener(MouseEvent.MOUSE_DOWN,onBallDown);i++;}flushXY();DragManager.init(stage);}/*** 当down的时候就把要检测的碰撞数组传入* @param event**/private function onBallDown(event:MouseEvent):void{DragManager.getInst().setHitObj(ballV,event.currentTarget,hitBack);}/*** 鼠标up的时候的回调* @param hitMC 被碰撞的原件* @param targetMC 拿去检测碰撞的原件* @return**/private function hitBack(hitMC,targetMC){if(!hitMC){return;}var hitMCIndex:int = ballV.indexOf(hitMC);ballV.splice(ballV.indexOf(targetMC),1)ballV.splice(hitMCIndex,0,targetMC);flushXY();}private function flushXY(){var i = 0;while(i<ballV.length){var b = ballV[i];b.x = 50 + Data.CircleSpX*int(i%8);b.y = 50 + Data.CircleSpY*int(i/8);i++;}}}}//***包外类生成一个圆形方便测试*/import flash.display.Sprite;import flash.geom.ColorTransform;import flash.text.TextField;class Ball extends Sprite{var me:Ball;var index:int = 0;function Ball(id){me = this;var t:TextField = new TextField;t.text = id + "";me.addChild(t);t.width = t.height = 20;me.graphics.beginFill(uint(Math.random()*0xffffff));me.graphics.drawCircle(Data.CircleWidth,Data.CircleWidth,Data.CircleWidth);me.graphics.endFill();}}********************************************************************************拖拽事件的封装类DragManager.aspackage{import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.Stage;import flash.events.MouseEvent;import flash.geom.Matrix;import flash.geom.Rectangle;/*** 检测碰撞类* @author Ruien.Wu*/public class DragManager{public static var me:DragManager;private static var stage:Stage;/**复制的截图*/private var icon:Bitmap;/**检测碰撞的目标数组 */private var targetArr:Array;/**拖拽的对象*/private var dragObj:*;/**回调函数*/private var callBack:Function;/**可拖拽面积*/private var arenaRect:Rectangle;public function DragManager(){if(me){throw new Error("不能被实例化");}}/*** 初始化舞台*/public static function init(stg:Stage){stage = stg;}public static function getInst():DragManager{if(!me){me = new DragManager;}return me;}/*** 设置碰撞的数据* @param _tagetArr 目标数组,即要检测拖拽碰撞的对象数组* @param _dragObj 拖拽的对象* @param _func 回调* @return**/public function setHitObj(_tagetArr:Array,_dragObj,_func:Function){ targetArr = _tagetArr;dragObj = _dragObj;callBack = _func;if(dragObj.visible){dragObj.visible = false;}showIcon(dragObj);}/*** 设置参数* @param arena 可拖拽面积* @return**/public function setData(arena:Rectangle = null){if(arena){arenaRect = arena;}}/*** 创建个icon*/private function showIcon(obj):void{icon=createIcon(obj);icon.x=stage.mouseX-icon.width/2;icon.y=stage.mouseY-icon.height/2;stage.addChild(icon);stage.addEventListener(MouseEvent.MOUSE_MOVE,onMove);stage.addEventListener(MouseEvent.MOUSE_UP,onUp);}/*** 鼠标up*/private function onUp(e = null):void{var hitMC = checkHitArena(targetArr,icon);dragObj.visible = true;callBack(hitMC,dragObj);stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMove);stage.removeEventListener(MouseEvent.MOUSE_UP,onUp);removeAll();}/*** 移动*/private function onMove(event:MouseEvent):void{icon.x=stage.mouseX-icon.width/2;icon.y=stage.mouseY-icon.height/2;if(arenaRect){if(arenaRect.x >icon.x){//左边icon.x = arenaRect.x;}if(icon.x>arenaRect.x + arenaRect.width){//右边icon.x = arenaRect.x + arenaRect.width;}if(icon.y<arenaRect.y){//上边icon.y = arenaRect.y}if(icon.y>arenaRect.y + arenaRect.height){//下面icon.y = arenaRect.y + arenaRect.height;}}}/*** 检测碰撞* @param target 目标数组* @param drag 拖拽的icon* @return**/private function checkHitArena(target:Array,drag:Bitmap):*{ var arenaArr:Array = [];for each(var m in target){if(drag.hitTestObject(m)&&m!=dragObj){return m;}}return null;}/*** 删除全部**/private function removeAll():void{if(icon){icon.bitmapData.dispose();stage.removeChild(icon);icon=null;}dragObj = null;targetArr = null;}/*** 创建个截图*/private function createIcon(sp):Bitmap{var b:Bitmap = new Bitmap;var realWidth:Number = sp.width/sp.scaleX;var realHeight:Number = sp.height/sp.scaleY;var mArr:Array = getMinXY(sp);var mBit:BitmapData = new BitmapData(realWidth,realHeight, true, 0);mBit.draw(sp,new Matrix(1,0,0,1,-mArr[0],-mArr[1]));b.bitmapData = mBit;b.width = sp.width;b.height = sp.height;return b;}/*** 获取最少坐标指,用于matrix* @param sp* @return**/private function getMinXY(sp):Array{var xArr:Array = [];var yArr:Array = [];for(var i:int = 0;i<sp.numChildren;i++){xArr.push(sp.getChildAt(i).x);yArr.push(sp.getChildAt(i).y);}xArr.sort(16);yArr.sort(16);return [xArr[0],yArr[0]];}}}*********************************************************************************** ***************************************************通过将mouseDown和mouseUp事件的封装,可以减少程序的逻辑判断,使代码简洁方便阅读。

相关文档
最新文档