发布时间:2019-07-31 08:47:56
FLASH拖拽按钮到指定区域,当我把按钮拖到指定位置时按钮会吸附到这个位置,如果没有拖到指定位置,则按钮回到原来的位置,这个效果如何在ActionScript3中实现
1、在FLASH文档中,把要拖动的图片都做成按钮,再把每一个图片做的按钮放到每一个影片剪辑中(有几个图片按钮就有几个影片剪辑)做成影片剪辑。
2、把要拖动图片的目标位置做成影片剪辑,这个目标位置的图片要做得十分地小,可以是一个很小的看不见的圆圈(自己设置该图片的颜色,以至看不见该图片为最好),每一个要拖动的图片都要有一个这样的目标位置。也就是有几个要拖动的图片就要有几个这样的位置。
3、新建影片剪辑:把按钮做成的影片剪辑(实例取名:mc),拖动图片要放的目标位置做成的影片剪辑(实例取名:mb_mc)(实例名可以取别的名字,在代码中也要做相应的修改。),放到新建的这个影片剪辑中,并为这个新建的影片剪辑写上代码:(在帧上写上代码:点一下层上放有“两个剪辑”的帧,然后点“动作”复制下面的代码就行了,如果实例名变了,只要更改代码中的实例名就行了),每一个要拖动的图片都要做成这样的影片剪辑(也就是要做成单独的写有以下代码影片剪辑) 。
4、把所有在第3步中做成的影片剪辑,拖入到场景中(同一帧也可以,每一层的第一帧也可以)
var mc_x:Number=this.mc._x;
var mc_y:Number=this.mc._y; //设一变量mc_x\mc_y记录被拖图片的初始位置
var mb_x:Number=this.mb_mc._x;
var mb_y:Number=this.mb_mc._y; //设一变量mb_x\mb_y记录目标点的位置;
this.mc.onPress=function(){
startDrag("mc",true); } //图片MC被点击时拖动;
this.mc.onRelease=function(){
stopDrag(); //松开时停止拖动;
jlx=Math.abs(mc._x-mb_x); //Math.abs(x) 方法;计算并返回由参数 x 指定的数字的绝对值。
jly=Math.abs(mc._y-mb_y); //松开时图片与目标点的位置差;
if(jlx<20||jly<20){//&&
mc._x=mb_x;
mc._y=mb_y; } //如果位置差小于20,那么图片停留在目标点; else{ mc._x=mc_x; mc._y=mc_y; } //否则回到初始位置; }。