한 컨테이너에서 다른 컨테이너로 표시 객체를 이동하지만 화면의 같은 위치에 표시하려고합니다. localToGlobal/globalToLocal AS3 혼란
은 내가이 년 전 이해 거라고 생각했지만, 다음은 작동하지 않습니다 내가 기대 한 것처럼function moveToNewContainer(obj:DisplayObject, newParent:DisplayObjectContainer):void {
var pos:Point = new Point(obj.x, obj.y);
var currentParent:DisplayObjectContainer = obj.parent;
pos = currentParent.localToGlobal(pos);
currentParent.removeChild(obj);
newParent.addChild(obj);
pos = newParent.globalToLocal(pos);
obj.x = pos.x;
obj.y = pos.y;
}
이 같은 장소에서 개체를 배치하지 않습니다.
내가 잘못하고있는 것을 아는 사람이 있습니까?
감사합니다, 제임스 localToGlobal
/globalToLocal
를 사용하고 보여 새로운 부모의 개체에 대한 올바른 위치를 계산하지만, 변화의 다른 측면에 대한 조정하지 않습니다처럼 x
및 y
속성을 설정
답장을 보내 주신 귀하와 Adam Smith에게 감사드립니다. 제가 말할 수있는 한, 스케일링, 회전 또는 전단 변환은 부모에게 없습니다. 두 부모의 위치를 0,0으로 설정하여 문제를 해결했습니다. 분명히 다른 일이 있습니다. 그러나 귀하의 답변은 모두 유효합니다. – tarling
이미 알았을 지 모르지만, 부모님의 * 조상 * 중 어느 누구도 근원까지 (최대 또는 최대까지) 크기 조정, 회전 또는 전단이 없는지 확인해야합니다. 첫 번째 공통 조상). – Aaron
나는 그 루트에 올라가고있는 부모 중 어떤 곳에서도 그 타입의 변형이 없다는 것을 확인했다. 그러나 귀하는 귀하의 권리를 확인하고 귀하의 조언은 여전히 유효합니다. – tarling