2017-05-17 13 views
0

regX, regYrotation이 적용된 DisplayObject의 전역 좌표를 가져 오려고합니다. 다음 사항을 고려회전 후 전체 X 및 Y 축

function drawShapes(){ 
    function createRectangle(color){ 
     var rect = new createjs.Shape(); 
     rect.graphics.beginFill(color).drawRect(0, 0, 100, 100); 
     stage.addChild(rect); 

     return rect; 
    } 

    var rect1 = createRectangle("rgba(255, 0, 0, 1)"); 
    rect1.x = 100; 
    rect1.y = 100; 
    var ltg = rect1.localToGlobal(0, 0); 
    console.log(`rect1 x: ${rect1.x}, y: ${rect1.y}, globalX: ${ltg.x}, globalY: ${ltg.y}`); 

    var rect2 = createRectangle("rgba(0, 255, 0, 1)"); 
    rect2.x = 100; 
    rect2.y = 100; 
    rect2.regX = 50; 
    rect2.regY = 50; 
    ltg = rect2.localToGlobal(0, 0); 
    console.log(`rect2 x: ${rect2.x}, y: ${rect2.y}, globalX: ${ltg.x}, globalY: ${ltg.y}`); 

    var rect3 = createRectangle("rgba(0, 0, 255, 1)"); 
    rect3.x = 100; 
    rect3.y = 100; 
    rect3.regX = 50; 
    rect3.regY = 50; 
    rect3.rotation = 45; 
    ltg = rect3.localToGlobal(0, 0); 
    console.log(`rect3 x: ${rect3.x}, y: ${rect3.y}, globalX: ${ltg.x}, globalY: ${ltg.y}`); 

    stage.update(); 
} 

http://jsfiddle.net/2gvv42or/

이의 출력은 다음과 같습니다 분명하게

rect1 x: 100, y: 100, globalX: 100, globalY: 100 감각이 녹색 RECT가 50 개 픽셀을 이동, 너무 의미가

rect2 x: 100, y: 100, globalX: 50, globalY: 50 및 왼쪽

rect3 x: 100, y: 100, globalX: 100, globalY: 29.289321881345245이 나를 당황하게합니다. rect2와 같아야합니다. 에 관계없이 회전 된 것 같습니다 regXregY

나는 오해하고 있거나 createjs에 버그/WAI가 있습니다. 어떤 경우에는 해결 방법이 있습니까?

답변

0

좋아, 이제 알아 냈어. regX를 넘겨 012Y으로 regY해야합니다.

localToGlobal(50, 50);