Flash as2写的代码 请问怎么转成as3中的代码,求教,急。。。

onClipEvent(mouseDown){if(_root.Z1.hitTest(_root._xmouse,_root._ymouse,false)){startD... onClipEvent(mouseDown){
if(_root.Z1.hitTest(_root._xmouse,_root._ymouse,false)){
startDrag(_root.Z1,true);
x=_root.Z1._x;
y=_root.Z1._y;
}
}
onClipEvent(mouseUp){
if(!_root.Z1.hitTest(_root.F1)){
_root.Z1._x=x;
_root.Z1._y=y;
}else{
_root.Z1._x=44;
_root.Z1._y=143;
}
stopDrag();
}
展开
 我来答
guidao999
推荐于2016-05-21 · TA获得超过303个赞
知道小有建树答主
回答量:200
采纳率:66%
帮助的人:99.3万
展开全部

as3.0的代码要写在帧上。

var px:Number,py:Number;
stage.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);
Z1.addEventListener(MouseEvent.MOUSE_UP,stopdrag);
function startdrag(eve:MouseEvent)
{
if (Z1.hitTestPoint(eve.stageX,eve.stageY))
{
Z1.startDrag(true);
px = Z1.x;
py = Z1.y;
}
}
function stopdrag(eve:MouseEvent)
{
if (! Z1.hitTestObject(F1))
{
Z1.x = px;
Z1.y = py;
}
else
{
Z1.x = 44;
Z1.y = 143;
}
Z1.stopDrag();
}
更多追问追答
追问
我按你的改了,按鼠标只能拖动实例,不能放下,怎么办?我这有一个用AS2写的flash,上面只是一部分,你能帮我转成as3的吗?代码不多。
追答

可能的原因是,Z1元件中的注册点不在图形中。有两种方法。

1.你可以选择Z1元件,将其中的图形进行移动,使元件中“+”符号在图形中。

2.改写as3.0函数。

var px:Number,py:Number,td:Boolean = false;
stage.addEventListener(MouseEvent.MOUSE_DOWN,startdrag);
stage.addEventListener(MouseEvent.MOUSE_UP,stopdrag);
function startdrag(eve:MouseEvent)
{
if (Z1.hitTestPoint(eve.stageX,eve.stageY))
{
td = true;
Z1.startDrag(true);
px = Z1.x;
py = Z1.y;
}
}
function stopdrag(eve:MouseEvent)
{
if (td)
{
if (! Z1.hitTestObject(F1))
{
Z1.x = px;
Z1.y = py;
}
else
{
Z1.x = 44;
Z1.y = 143;
}
Z1.stopDrag();
td=false;
}
}

这样就可以了,既然是你同学写的。那应该知道

这个代码中,如果元件图形是不规则的,点击元件方框的空白处,也可以有效果。不知道这是不是你要的?

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式