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

lash3.0中,假如现在有9个元件,鼠标点击任意一个元件后,再点击任意一个元件,然后这两个元件就会交换位置的代码怎样写?(元件是任意点击的,不知道会点中哪一个)... lash3.0中,假如现在有9个元件,鼠标点击任意一个元件后,再点击任意一个元件,然后这两个元件就会交换位置的代码怎样写?(元件是任意点击的,不知道会点中哪一个) 展开
 我来答
楚懿瑶
2017-11-21 · TA获得超过5020个赞
知道大有可为答主
回答量:6917
采纳率:84%
帮助的人:1808万
展开全部

舞台上有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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式