MyGameMyLove.com

原创教程
鼠标拖动mc与别一个mc位置互换
2007-12-20 mc位置互换
效果:
/*自娱自乐 www.MyGameMyLove.com
flash原创教程
我的经验与您分享 mygamemylove@qq.com
smallerbird 2007-12-20
*/
//
//_mc 要绑定的mc
//objForDragSwap用于配置的对像(看实例应该清楚,源码下载地址:http://www.mygamemylove.com/oldweb/124.html)
//所有可以互换的mc的父mc
//objForDragSwap.mcRoot = _root;
//所有可以互换的mc的名字共同前缀
//objForDragSwap.strSwapMcName = "mcD";
function iniDrag(_mc, objForDragSwap) {
//互换两个MC的位置
_mc.swapMc = function(mc1:MovieClip, mc2:MovieClip) {
//注意x,y与_x,_y的区别
//这是两个数的互换
mc1.x = mc1.x+mc2.x;
mc2.x = mc1.x-mc2.x;
mc1.x = mc1.x-mc2.x;
//
mc1.y = mc1.y+mc2.y;
mc2.y = mc1.y-mc2.y;
mc1.y = mc1.y-mc2.y;
//两个mc坐标互换
mc1._x = mc1.x;
mc2._x = mc2.x;
mc1._y = mc1.y;
mc2._y = mc2.y;
};
//记录原始位置
_mc.x = _mc._x;
_mc.y = _mc._y;
//是否碰到
_mc.isHit = false;
//
_mc.onPress = function() {
//放在最前面。
mx.behaviors.DepthControl.bringToFront(this);
//
this._alpha = 50;
this.startDrag();
};
_mc.onRelease = function() {
//
this._alpha = 100;
this.stopDrag();
//
for (var i in objForDragSwap.mcRoot) {
if (i.indexOf(objForDragSwap.strSwapMcName) == 0 && i != this._name) {
if (this.hitTest(objForDragSwap.mcRoot[i])) {
//trace("yes"+i)
_mc.swapMc(this, objForDragSwap.mcRoot[i]);
_mc.isHit = true;
break;
}
//end if
}
//end if
}
//end for
//如果没有碰到任何,回到原来的位置
if (!_mc.isHit) {
this._x = this.x;
this._y = this.y;
}else{
//这行很重要,不然会出错。
_mc.isHit=false
}
//end if
};
}
//
var mcD1:MovieClip, mcD2:MovieClip, mcD3:MovieClip, mcD4:MovieClip;
//配制参数
var objForDragSwap:Object = new Object();
//所有可以互换的mc的父mc
objForDragSwap.mcRoot = _root;
//所有可以互换的mc的名字共同前缀
objForDragSwap.strSwapMcName = "mcD";
//
for(var i:Number=1;i<=4;i++){
iniDrag(objForDragSwap.mcRoot[objForDragSwap.strSwapMcName+String(i)], objForDragSwap);
}
/*这样直观一些
iniDrag(mcD1,objForDragSwap)
iniDrag(mcD2,objForDragSwap)
iniDrag(mcD3,objForDragSwap)
iniDrag(mcD4,objForDragSwap)*/
flash原创教程
我的经验与您分享 mygamemylove@qq.com
smallerbird 2007-12-20
*/
//
//_mc 要绑定的mc
//objForDragSwap用于配置的对像(看实例应该清楚,源码下载地址:http://www.mygamemylove.com/oldweb/124.html)
//所有可以互换的mc的父mc
//objForDragSwap.mcRoot = _root;
//所有可以互换的mc的名字共同前缀
//objForDragSwap.strSwapMcName = "mcD";
function iniDrag(_mc, objForDragSwap) {
//互换两个MC的位置
_mc.swapMc = function(mc1:MovieClip, mc2:MovieClip) {
//注意x,y与_x,_y的区别
//这是两个数的互换
mc1.x = mc1.x+mc2.x;
mc2.x = mc1.x-mc2.x;
mc1.x = mc1.x-mc2.x;
//
mc1.y = mc1.y+mc2.y;
mc2.y = mc1.y-mc2.y;
mc1.y = mc1.y-mc2.y;
//两个mc坐标互换
mc1._x = mc1.x;
mc2._x = mc2.x;
mc1._y = mc1.y;
mc2._y = mc2.y;
};
//记录原始位置
_mc.x = _mc._x;
_mc.y = _mc._y;
//是否碰到
_mc.isHit = false;
//
_mc.onPress = function() {
//放在最前面。
mx.behaviors.DepthControl.bringToFront(this);
//
this._alpha = 50;
this.startDrag();
};
_mc.onRelease = function() {
//
this._alpha = 100;
this.stopDrag();
//
for (var i in objForDragSwap.mcRoot) {
if (i.indexOf(objForDragSwap.strSwapMcName) == 0 && i != this._name) {
if (this.hitTest(objForDragSwap.mcRoot[i])) {
//trace("yes"+i)
_mc.swapMc(this, objForDragSwap.mcRoot[i]);
_mc.isHit = true;
break;
}
//end if
}
//end if
}
//end for
//如果没有碰到任何,回到原来的位置
if (!_mc.isHit) {
this._x = this.x;
this._y = this.y;
}else{
//这行很重要,不然会出错。
_mc.isHit=false
}
//end if
};
}
//
var mcD1:MovieClip, mcD2:MovieClip, mcD3:MovieClip, mcD4:MovieClip;
//配制参数
var objForDragSwap:Object = new Object();
//所有可以互换的mc的父mc
objForDragSwap.mcRoot = _root;
//所有可以互换的mc的名字共同前缀
objForDragSwap.strSwapMcName = "mcD";
//
for(var i:Number=1;i<=4;i++){
iniDrag(objForDragSwap.mcRoot[objForDragSwap.strSwapMcName+String(i)], objForDragSwap);
}
/*这样直观一些
iniDrag(mcD1,objForDragSwap)
iniDrag(mcD2,objForDragSwap)
iniDrag(mcD3,objForDragSwap)
iniDrag(mcD4,objForDragSwap)*/
浏览量:
返回列表相关评论
yangbo828@126.com
2008-1-28
好玩,高手啊
相关主题
2007-12-20 mc位置互换
效果:[flash]400350demo/swapdrag/swapDrag.swf[/flash]下...查看..
有话说? 好的,那就到我的留言本里给我留言吧!我们共同进步.
友情连接 :我要申请
