flash3.0中,鼠标点击任意一个元件后,再点击任意一个元件,两个元件就会交换位置的代码怎样写?

作者&投稿:钮杨 (若有异议请与网页底部的电邮联系)
flash 3.0 怎样拖动一个元件到指定位置,如果拖动到了,就放下,没到就回到原位?是3.0代码!谢谢!~

/*
*1、新建flash ActionScript 3.0文档
*2、选择“矩形工具(R)”,在舞台上随意拉出一个矩形
*3、选择“选择工具(V)”,双击矩形,右击->选择“转换成元件”,元件名默认,确定
*4、在元件属性中(默认在软件窗口的左边,如无法看见,则按Ctrl+F3显示,这个是默认的快捷显示属性窗口),填写元件实例名为 mc_a
*5、按住Ctrl,在舞台中,将元件mc_a拉到任意一位置(元件mc_a被复制出来了),右击复制出来的元件->直接复制元件,双击元件进入,修改矩形的颜色以区分元件
*6、命名复制出来的元件实例名为 mc_b,方法同第4步
*7、将以下代码放到舞台第一帧,按Ctrl+Enter测试(默认快捷键)
*PS:以上提到的元件实例名,都可以自定,但下面的代码出现到的元件名都要修改成你自定义的
*/


import flash.events.Event;
import flash.geom.Point;
import flash.events.MouseEvent;
import flash.display.MovieClip;


this.loaderInfo.addEventListener(Event.COMPLETE,completeFun); //添加加载完成事件
var point:Point;
var drag_x:Number;
var drag_y:Number;


function completeFun(e:Event):void{
point = new Point(this.mc_a.x,this.mc_a.x); //初始化时,获取拖动的元件,以方便还原位置
mc_a.buttonMode = true; //设置拖动元件鼠标移上去时是否显示手指,true为显示
mc_a.addEventListener(MouseEvent.MOUSE_DOWN,mouseDownFun); //添加拖动的鼠标按下事件
}


/**
*
*点中拖动的元件
*/
function mouseDownFun(e:MouseEvent):void{
var mc:MovieClip = e.currentTarget as MovieClip;
if(!mc.enabled){ //如果元件禁止启用,则不会执行下面操作
return;
}

drag_x = this.mouseX - mc.x; //获取当前鼠标与元件注册点的相对位置
drag_y = this.mouseY - mc.y; //获取当前鼠标与元件注册点的相对位置

this.stage.addEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFun); //添加鼠标移动事件
this.stage.addEventListener(MouseEvent.MOUSE_UP,mouseUpFun); //添加鼠标释放事件

//PS:这里是舞台添加事件而不是拖动元件本身,是因为防止鼠标拉太快,超出元件范围而中断拖动的情况
}


/**
*
*拖动元件
*/
function mouseMoveFun(e:MouseEvent):void{

mc_a.x = this.mouseX - drag_x; //设置元件的位置
mc_a.y = this.mouseY - drag_y; //设置元件的位置

//PS:此计算公式,是上面点击里获取相对位置的公式的一个置换
}


/**
*
*释放拖动的元件
*/
function mouseUpFun(e:MouseEvent):void{
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE,mouseMoveFun); //删除鼠标移动事件
this.stage.removeEventListener(MouseEvent.MOUSE_UP,mouseUpFun); //删除鼠标释放事件

if(mc_b.hitTestPoint(this.mouseX,this.mouseY,true)){ //判断鼠标是否点中放置的元件
//点中放置的元件,则将拖动元件的坐标设置成放置元件的坐标
mc_a.x = mc_b.x;
mc_a.y = mc_b.y;
}else{
//否则,还原到初始位置
mc_a.x = point.x;
mc_a.y = point.y;
}
}

一般这样的错误都是调用某个变量名,但是舞台或者显示列表没有该对象导致的。
核对一下变量名称,看是不是这样的情况。
另外,如果是代码问题,最好是能截图出来,也就是文件里用到的代码,而不只是把报错放上来。
建议把源文件截图并把代码放上来,才能分析更具体的错误原因。

舞台上有9个影片剪辑,有两帧,第一帧加stop();

实例名分别为mc1/mc2/mc3...mc9

在帧上加如下代码:

import fl.transitions.Tween;
import fl.motion.easing.Quadratic;
import fl.transitions.TweenEvent;

var time:Number=0.3;//切换时间
var startId:int=0;
var endId:int=0;
var clickCount:int=0;
var isMove:Boolean=false;
var tweenAry:Array=new Array();
for(var i:int=1;i<10;i++)
{
this["mc"+i].addEventListener(MouseEvent.CLICK,MouseClickEvent);
}
function MouseClickEvent(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
var t:int=int(obj.name.slice(2));
if(t==startId||t==endId)
{
obj.gotoAndStop(1);
clickCount--;
if(t==startId)
{
startId=0;
}
else if(t==endId)
{
endId=0;
}
return;
}
obj.gotoAndStop(2);
if(clickCount==0)
{
startId=t;
}
else
{
endId=t;
}
clickCount++;
if(clickCount==2)
{
isMove=true;
tweenAry.push(new Tween(this["mc"+startId], "x", Quadratic.easeInOut, this["mc"+startId].x,this["mc"+endId].x,time, true));
tweenAry.push(new Tween(this["mc"+startId], "y", Quadratic.easeInOut, this["mc"+startId].y,this["mc"+endId].y,time, true));
tweenAry.push(new Tween(this["mc"+endId], "x", Quadratic.easeInOut, this["mc"+endId].x,this["mc"+startId].x,time, true));
tweenAry.push(new Tween(this["mc"+endId], "y", Quadratic.easeInOut, this["mc"+endId].y,this["mc"+startId].y,time, true));
tweenAry[tweenAry.length-1].addEventListener(TweenEvent.MOTION_FINISH,MoveEndEvent);
}
}
function MoveEndEvent(e:TweenEvent):void
{
isMove=false;
this["mc"+startId].gotoAndStop(1);
this["mc"+endId].gotoAndStop(1);
clickCount=0;
startId=0;
endId=0;
}



flash3.0中,鼠标点击任意一个元件后,再点击任意一个元件,两个元件就会...
在帧上加如下代码:import fl.transitions.Tween;import fl.motion.easing.Quadratic;import fl.transitions.TweenEvent;var time:Number=0.3;\/\/切换时间var startId:int=0;var endId:int=0;var clickCount:int=0;var isMove:Boolean=false;var tweenAry:Array=new Array();for(var i:int=1;i<...

felash怎么把平面蝴蝶两个翅膀变重叠再煽动
1、打开Flash新建一个actionscript3.0的文件。2、利用矩形工具、圆形工具和直线工具在场景中绘制蝴蝶的一半翅膀。。3、选择翅膀图形,F8键将其转为图形元件。4、按ctrl+f8新建一个影片剪辑起名为蝴蝶。5、按ctrl+L打开库,从库中将翅膀左拖入场景中合适位置。6、新建一个图层,然后再从库中拖一个翅膀...

FLASH是什么东西?
英[fl__]美[fl__]v.闪光;(使)闪耀;(向?)用光发出(信号);(快速地)显示;飞速运动;突然想到;(使)闪现,映出,显示;(通过无线电、计算机等)快速发送(信息);突然显露(强烈情感。n.闪光;闪耀;(尤指信号灯)闪亮;(想法的)突现;(情感的)突发;(明亮的东西)闪现;闪光灯;徽章,肩章,臂章...

点开lol提示Microsoft Visual C++ runtime library
3.0、如果提示你丢失诸如“msvcp50.dll、msvcp60.dll、MSVCP60D.DLL、msvci70.dll、msvcp70.dll、msvcp71.dll”,从其他机器或者网上下载后补回到软件目录或者系统system32目录即可; 3.1、软件使用最新版本并且最好是完全版本(别用破解或者绿色版); 3.2、上微软自动更新打补丁; 打完补丁后还是不行,去微软下载Microsoft...

一体机需要安装什么程序才能看下载的小视频
安装flashlash是由macromedia公司推出的交互式矢量图和 Web 动画的标准,由Adobe公司收购。做Flash动画的人被称之为闪客。网页设计者使用 Flash 创作出既漂亮又可改变尺寸的导航界面以及其他奇特的效果。Flash的前身是Future Wave公司的Future Splash,是世界上第一个商用的二维矢量动画软件,用于设计和编辑...

求星空急速3.0破解方法或将我的Sniffer Pro文档分析出用户名和密码,谢...
第一步:下载 SNIFFER PRO 4.7.5 33MB(下方提供了下载地址)第二步: 安装SNIFFER PRO ,安装汉化补丁,重新启动系统 第三步:不要运行星空极速连接网络,运行程序,点击"文件"---"选定设置",选择你的网卡,确定 第四步:点击菜单"监视器"___"主机列表",出现如图,点击图中2处"本地",点击图中3处...

u盘3.0能在1.0接口上用吗
可以。USB3.0是向下兼容的,1.0接口可以用作传输。U盘,全称USB闪存盘,英文名“USBlashdisk”,是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品,通过USB接口与电脑连接,实现即插即用。

晋安区18433619682: flash3.0中,鼠标点击任意一个元件后,再点击任意一个元件,两个元件就会交换位置的代码怎样写? -
黎轰艾去: 舞台上有9个影片剪辑,有两帧,第一帧加stop(); 实例名分别为mc1/mc2/mc3...mc9 在帧上加如下代码:import fl.transitions.Tween; import fl.motion.easing.Quadratic; import fl.transitions.TweenEvent; var time:Number=0.3;//切换时间 var ...

晋安区18433619682: flash3.0鼠标点击的代码,就相当于点击一下 -
黎轰艾去: 鼠标事件 MouseEvent.CLICK btn.addEventListener(MouseEvent.CLICK,onClick);//注册点击事件 function onClick(e:MouseEvent):void//定义点击事件内容 { }

晋安区18433619682: flash里怎么像ppt一样 鼠标单击任意位置后继续 -
黎轰艾去: 成功分享 举个简单的例子:比如有3页文章(做3个影片剪辑a1,a2,a3) 回到主场景 第一帧拖入“a1”,然后按F7,第二帧拖入“a2”,再按F7,第三帧拖入“a3” 分别点击每个帧,然后在动作里面输入"stop();" 每一帧都加一个按钮,然后给按钮加上动作 on(release){ play(); } 就可以到下一页了 PS:如果想直接从第一页倒第三页,那么按钮动作改成 “on(release){gotoAndPlay(3);}就好了 这是最简单也最复杂的方法,如果以后你会了的话,可以用加标签的方法,是比较不容易出错的

晋安区18433619682: flash用3.0代码添加一个鼠标监听点击某个原件后这个原件在其他地方重复显示 -
黎轰艾去: 就是让这个影片剪辑闪几次呗,直接影片剪辑里做好渐隐渐现的效果,然后鼠标点击的时候播放这个效果就可以了.

晋安区18433619682: flash 3.0 如何获取鼠标点击的元件的实例名称 -
黎轰艾去: 鼠标点击事件中的 target 属性即为元件.所以类似如下:event.target.name 就是实例名

晋安区18433619682: flash as3.0实现鼠标点击屏幕时候,某一个物体上下跳跃 -
黎轰艾去: var bln:int=0 var speed:int=10//跳动速度 var up1:int=0//上限 var down1:int=400//下限 stage.addEventListener(MouseEvent.CLICK,onclick) function onclick(e:MouseEvent):void{ addEventListener(Event.ENTER_FRAME,onenterframe) } function ...

晋安区18433619682: FLASH鼠标点击获得坐标值 -
黎轰艾去: 这里有你需要的东西: 1.新建一个MC,任意画一个图形,如果需要,你可以画一个漂亮的飞机,汽车什么的. 2.回到主场景,把当前图层改名为MC.把MC拖入其中,在第二帧插入一个帧. 3.新建一个图层,命名为text,用文本工具创建两个...

晋安区18433619682: 网页制作,求大神解答:Flash动画,分三个场景,怎样在二个场景中任意一点鼠标就切换到第三个场景呢 -
黎轰艾去: 在第二个场景里插入按钮元件.进入元件在点击上插入关键帧.画一个与舞台等大的矩形框.然后退到场景里把元件拖到舞台上.右键点击舞台中的元件添加动作脚本gotoandplay()在这个括号里输入第三个场景所在的帧 ps:脚本在动作里找.我的格式不对

晋安区18433619682: 如何用flash制作鼠标点击拾取,拖动到任意位置,再点击,就会放在指定位置的效果. -
黎轰艾去: mc.startDrag(); //允许用户拖动指定的 Sprite.mc是影片剪辑,或者你要拖动的对象mc.stopDrag(); //结束 startDrag() 方法.楼主要的应该就是这两个方法了.当然,这是关键点而已,楼主还需要添加两个鼠标事件.一下是主体代码...

晋安区18433619682: flash点击播放无按钮.就是舞台播放时鼠标舞台内任意位置点击即可播放.我在用flash做小游戏... -
黎轰艾去: 一般出现这个问题的原因是舞台没有背景图.你在flash里绘制一和舞台一样大小的背景图图片,放在最底层,变成透明也可以.检查你的代码:import flash.events.MouseEvent; stage.addEventListener(MouseEvent.CLICK,run) function run (e) { play() } 用舞台做侦听器,无按钮.张志晨

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网