Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 使用localToGlobal切换图像位置_Actionscript 3 - Fatal编程技术网

Actionscript 3 使用localToGlobal切换图像位置

Actionscript 3 使用localToGlobal切换图像位置,actionscript-3,Actionscript 3,我正在尝试将父容器的坐标转换为全局阶段坐标。这是对象和容器: imgSprite.addChild(imgInstance); //imgInstance is imported from class imageContainer.addChild(last); imageContainer.addChild(imgSprite); // imgSprite and last are to be replaced 基本上,我想切换imageContainer中两个图像的位置 我应用了

我正在尝试将父容器的坐标转换为全局阶段坐标。这是对象和容器:

 imgSprite.addChild(imgInstance); //imgInstance is imported from class
 imageContainer.addChild(last); 
 imageContainer.addChild(imgSprite); // imgSprite and last are to be replaced 
基本上,我想切换imageContainer中两个图像的位置

我应用了localToGlobal函数,但没有任何效果。我做错了什么

这是我取代它们的功能。注意:此代码属于main类,容器的父级是stage,每个imgSprite只是添加到imgContainer中,并通过代码中没有的obj.x、obj.y移动

function click(e:MouseEvent):void {     
    var p1:Point = e.currentTarget.localToGlobal(newPoint(e.currentTarget.x, e.currentTarget.y));
    var p2:Point = last.localToGlobal(new Point(last.x, last.y));
    e.currentTarget.x = globalToLocal(p2).x; 
    e.currentTarget.y = globalToLocal(p2).y;
    last.x = globalToLocal(p1).x;
    last.y = globalToLocal(p1).y;
}
据我所知,每个物体都有局部和全局位置。因此,这里我将一个局部位置转换为全局位置,然后再次将另一个对象移动到该位置时,我将其转换为局部位置,因为它们属于同一个父对象,这将导致坐标匹配,但我的图像开始在各个方向上飞来飞去,我开始拉扯头发

var p2:Point = last.localToGlobal(new Point(last.x, last.y));
应该是

var p2:Point = last.localToGlobal(new Point(0, 0));
localToGlobal中的Point参数是要全球化的DisplayObject中的点。因此,如果last位于其父容器内的50,50,那么代码实际上要求last内的全局坐标为50,50。在本例中,0,0是last.x,last.y