저는 FlashDevelop, actionscript 3 및 fxg 그래픽을 Illustrator로 빌드합니다 (fxg 2.0으로 내 보임).좌표계가 스케일 된 fxg 그래픽 드래그를 변경하지 않습니다.
Illustrator에서 fxg 직사각형을 가져온 다음 클립핑 할 때 드래그 가능으로 설정하여 좌표가 변경됩니다. 이것은 직사각형 눈금이 1 인 경우 효과가 있습니다 (즉, 눈금 없음). 그러나 스케일을 변경하면 (예 : fxgRect.scaleX = fxgRect.scaleY = 0.5;) 드래그 할 수는 있지만 좌표는 변경되지 않습니다 !! 스프라이트의 위치가 바뀌기 때문에 이것은 나를 미쳐지게합니다. 그러나 좌표를 요청하면 바뀌지 않습니다 !! 그리고 fxgRect.mouseChildren = false;
을 설정하여 스프라이트 fxgRect를 옮기고 그 안의 내용을 옮겨야합니다. (이것은 단지 예일뿐입니다. 제 목표는 일러스트 레이터로 복잡한 그래픽을 만들고 FlashDevelop에서 사용하는 것입니다.)
도와 주셔서 감사합니다.
이 코드는이 문제를 테스트하기위한 것입니다. 이 예제를 사용하려면 fxg 사각형 (fxgrectangle.fxg)을 만들어 SimpleDragFxg.as 클래스의 같은 폴더에 넣어야합니다.
import flash.display.*;
import flash.events.*;
import fxgrectangle;
public class SimpleDragFxg extends Sprite
{
public var fxgRect:Sprite = new fxgrectangle(); // make an istance of fxgRect
public function SimpleDragFxg()
{
//----------------------------------------------------------
addChild(fxgRect);
fxgRect.name = "FXGrect";
fxgRect.x = fxgRect.y = 50;
fxgRect.mouseChildren = false;
fxgRect.scaleX = fxgRect.scaleY = 0.5; //<<< this makes the problem
trace ("I'm ", this.name, "and I contain ", this.fxgRect.name, "which contains ", fxgRect.getChildAt(0).name);
fxgRect.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
//--------------------------------------------------------------
}
private function onMouseDown (e:MouseEvent):void
{
trace ("e.target: ", e.target.name);
if (DisplayObject(e.target).name == "FXGrect")
{
trace ("FXGrect position BEFORE drag: ", fxgRect.x, fxgRect.y);
Sprite(e.target).startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp);
}
}
private function onMouseUp (e:MouseEvent):void
{
fxgRect.stopDrag();
stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp);
if (DisplayObject(e.target).name == "FXGrect")
{
trace ("FXGrect position AFTER drag: ", fxgRect.x, fxgRect.y);
}
}
}
당신이 끌어 항목을 확장하지 마십시오 수보십시오? 드래그 한 항목에 변형을 적용하지 말고 드래그 할 컨테이너와 변환을 적용 할 내용이 있어야합니다. 더 많은 것을 추적 할 수 있습니다 (e.target); onMouseDown 및 onMouseUp에서? 어쩌면 당신은 끌고 있다고 생각하는 것을 끌지 않을 것입니다 :) :) –
네, 아마 스케일되지 않은 항목을 사용할 수는 있지만, 문제를 발견하면 해결하려고합니다. 제 질문에 대해 진심으로 감사드립니다. – AntonioG