AS3.0拖动的问题,
答案:2 悬赏:0
解决时间 2021-03-24 22:37
- 提问者网友:心如荒岛囚我终老
- 2021-03-24 04:45
AS3.0拖动的问题,
最佳答案
- 二级知识专家网友:未来江山和你
- 2021-03-24 04:51
将你的代码改成这样就行!
var a:int=6;
for(var i:int=1;i<6;i++)
{
this["hanbao"+i].addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
}
function fl_ClickToDrag(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
if(a>0)
{
obj.startDrag();
obj.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
a--;
}
}
function fl_ReleaseToDrop(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
obj.stopDrag();
obj.removeEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
}
var a:int=6;
for(var i:int=1;i<6;i++)
{
this["hanbao"+i].addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
}
function fl_ClickToDrag(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
if(a>0)
{
obj.startDrag();
obj.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
a--;
}
}
function fl_ReleaseToDrop(e:MouseEvent):void
{
var obj:Object=e.currentTarget;
obj.stopDrag();
obj.removeEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
}
全部回答
- 1楼网友:老鼠爱大米
- 2021-03-24 05:21
你的脚本有问题。
这是修改后的脚本,我没测试,你试试吧。
var a:int = 6;
for (var i:int=1; i<a; i++)
{
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
}
function fl_ClickToDrag(e:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.currentTarget.name == this["hanbao" + j])
{
evt.currentTarget.startDrag();
}
}
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.currentTarget.name == this["hanbao" + j])
{
evt.currentTarget.stopDrag();
}
}
}
追问:也不行,我就想用一段简单代码拖拽多个物体,
追答:import flash.events.MouseEvent;
var a:uint = 6;
for (var i:uint=0; i<a; i++)
{
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_DOWN,fl_ClickToDrag);
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
this["hanbao" + i].buttonMode = true;
this["hanbao" + i].mouseChildren = false;
}
function fl_ClickToDrag(evt:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.target.name == "hanbao" + j)
{
evt.target.startDrag();
trace(evt.target.name);
}
}
}
function fl_ReleaseToDrop(evt:MouseEvent):void
{
for (var m:uint=0; m<a; m++)
{
if (evt.target.name == "hanbao" + m)
{
evt.target.stopDrag();
}
}
}
这个我调试了,能正常使用。
这是修改后的脚本,我没测试,你试试吧。
var a:int = 6;
for (var i:int=1; i<a; i++)
{
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
}
function fl_ClickToDrag(e:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.currentTarget.name == this["hanbao" + j])
{
evt.currentTarget.startDrag();
}
}
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.currentTarget.name == this["hanbao" + j])
{
evt.currentTarget.stopDrag();
}
}
}
追问:也不行,我就想用一段简单代码拖拽多个物体,
追答:import flash.events.MouseEvent;
var a:uint = 6;
for (var i:uint=0; i<a; i++)
{
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_DOWN,fl_ClickToDrag);
this["hanbao" + i].addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
this["hanbao" + i].buttonMode = true;
this["hanbao" + i].mouseChildren = false;
}
function fl_ClickToDrag(evt:MouseEvent):void
{
for (var j:uint=0; j<a; j++)
{
if (evt.target.name == "hanbao" + j)
{
evt.target.startDrag();
trace(evt.target.name);
}
}
}
function fl_ReleaseToDrop(evt:MouseEvent):void
{
for (var m:uint=0; m<a; m++)
{
if (evt.target.name == "hanbao" + m)
{
evt.target.stopDrag();
}
}
}
这个我调试了,能正常使用。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯