![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
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();
} 展开
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();
} 展开
1个回答
展开全部
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;
}
}
这样就可以了,既然是你同学写的。那应该知道
这个代码中,如果元件图形是不规则的,点击元件方框的空白处,也可以有效果。不知道这是不是你要的?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询