2014-01-24 3 views
0

그래서 이것을 알아내는 데 어려움이 있습니다. 임 스테이지의 오른쪽 아래 모서리에있는 stage.y 및 stage.y을 만들려고, 그래서이개체의 위치를 ​​왼쪽 하단 모서리에서 시작하는 방법

 box.x = 100 
     box.y = 100 
     this.addChild(box); 

같은를 추가 할 때마다이 스테이지의 왼쪽 아래 모서리에서 100 픽셀 것입니다.

은 내가

 stage.scaleMode = StageScaleMode.NO_SCALE; 
     stage.align = StageAlign.BOTTOM_LEFT; 

으로 시도했지만 작업을 did`nt. 내가 빠진 것이 있습니까?

+2

인사를하지만, 나는 align 속성이 이런 식으로 사용되도록되어 있는지 잘 모르겠다. – mitim

+0

흠, 나는 세션을 시도한 후에 같은 생각을하고 있었지만, 내가 원하는 것을 할 수있는 방법이 있나? – GregorII

+1

StageAlign.BOTTOM_LEFT 속성은 왼쪽 하단의 스테이지 wrt에서 표시 객체를 배치 할 수 없습니다. 전체 플래시 윈도우의 크기가 조정될 때, 즉 스테이지의 크기가 조정될 때 이러한 표시 객체가 왼쪽 하단에 고정 될 때 표시 객체의 배치에 사용됩니다. 어떤 경우에도 x/y 위치는 항상 왼쪽 위부터입니다. – shinobi

답변

2

"동영상 클립을 만들고 왼쪽 하단에 등록 포인트를 만들고이 동영상 클립에 물건 추가하기"에 대한 귀하의 의견은 분명히 그것을 수행하는 한 가지 방법입니다. 아마 마음에 떠오르는 가장 쉬운 방법 중 하나이며 필요에 따라 쉽게 이동하고 포함 된 개체를 업데이트 할 수 있습니다.

또 다른 방법은 모든 개체를 배치하기 위해 점 개체와 참조를 만드는 것입니다. 뭔가 같은 : 당신이 변경하려는 경우

box.x = origin.x + 100; 
box.y = origin.y - 100; 

그러나, 당신이해야합니다 이동하고 기존의 업데이트 모든 위치 몇 가지 코드를 추가합니다 : 당신의 상자 다음

var origin:Point = new Point(0, this.stage.stageHeight); 

및 사물.

당신이 정말로 + y는 위쪽으로가는 것을 고집하고 무대에서 아래쪽으로 -y하는 경우

, 당신은 트릭을 사용할 수 있지만 상당한 오버 헤드 정신 비용이있을 수 있습니다 :

사용 첫 번째 방법이지만 동영상 클립에 왼쪽 하단 모서리에 위치하기 전에 100 배의 음수를 지정합니다. 이제는 모든 것이 거꾸로됨을 고려해야합니다. 따라서 부작용을 처리/감안해야합니다. 권장하지는 않지만 그냥 던지십시오. 그곳에.

+0

가능성이 높습니다 ** 포인트 ** 일은 쉽고 명확하게 보입니다. 10 배 – GregorII

1

또한 정적 메서드를 작성하고 당신이 필요로 할 때 항상 전화, 예 수 :

public class DisplayObjectUtils 
{ 
    public static function setRegPoint(obj:DisplayObjectContainer, newX:Number, newY:Number):void 
    { 
     var bounds:Rectangle = obj.getBounds(obj.parent); 
     var currentRegX:Number = obj.x - bounds.left; 
     var currentRegY:Number = obj.y - bounds.top; 

     var xOffset:Number = newX - currentRegX; 
     var yOffset:Number = newY - currentRegY; 

     obj.x += xOffset; 
     obj.y += yOffset; 

     var totalChildren:uint = obj.numChildren; 
     for (var i:int = 0; i < totalChildren; i++) 
     { 
      obj.getChildAt(i).x -= xOffset; 
      obj.getChildAt(i).y -= yOffset; 
     } 
     bounds = null; 
    } 
} 

을 그리고 같은 시도, 사용 : 내가 잘못 될 수

//register point in the center of the object //box.width >> 1, box.height >> 1 
DisplayObjectUtils.setRegPoint(box, box.width >> 1, box.height >> 1); 
관련 문제