2010-01-06 6 views
0

중간에 표시 객체가 정렬됩니다. stage.stageWidth/2. 웬일인지, 그들은 스크린의 오른쪽에 더 멀리 정렬하고있다.표시 객체가 올바르게 정렬되지 않습니다.

플래시의 스테이지 너비 이외에는 아무 것도 변경하지 않았습니다. 아무도이 문제에 대해 들어 보지 못했습니까? 다시 말하지만, 화면을 넓히고 높이를 조절하는 것 외에는 아무 것도하지 않았습니다.

다음은 수정하기 위해 입력 한 코드입니다. 아무 일도 없었습니다.

표시 객체의 포커스 포인트가 왼쪽 상단에 있습니다. 당신이 (또는 오히려 당신의 SWF가 포함되는 창) 무대의 크기를 조정하는 경우 다음 단계 스케일링을 StageAlign.TOP_LEFT을 사용하고 사용하지 않도록 도움이됩니다, 0,0

stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.align = StageAlign.TOP_LEFT; 
stage.stageWidth = 300; 

답변

1

stage.stageWidth/2은 스테이지의 왼쪽부터 픽셀 기준으로 스테이지의 정확한 중심입니다.

square이 100x100 픽셀이고 등록 포인트가 왼쪽 상단 (자체 (0,0))에 있다고 가정 해 보겠습니다.

당신이 square 무대의 중앙에하려면

, 당신은 정말 무대 중앙이 아닌 square의 왼쪽에 square중간을 넣고 싶다. 그것은 완벽을 중심으로하고, 오른쪽으로 나머지 절반을 떠나, 중앙의 왼쪽에있는 사각형의 절반을두고
그래서 대신 square.x = stage.stageWidth/2;
사용 square.x = stage.stageWidth/2 - square.width/2;.

이 기술은 왼쪽 경계에 등록 포인트가있는 개체에서만 작동합니다. 등록 포인트가 정확히 square의 중간에 있었다면 square.x = stage.stageWidth/2;이 정상적으로 작동합니다.

+0

예, 이제 나에게 이해되기 시작합니다. – numerical25

2

로 설정하면 그렇게 완벽하게 정렬 (즉, StageScaleMode.NO_SCALE으로) 당신이하고있는 것과 같습니다. stageWidth으로 설정하면 안됩니다. 사용자가 스테이지의 크기를 조정하면 업데이트됩니다. 이 작업을 수행 할 때 동작이 확실하지 않으므로 위의 스 니펫에서 3 행을 제거하고 그 것이 도움이되는지 확인하는 것이 좋습니다.

+0

3 호는 막판 시도였습니다. 내 물건이 오른쪽으로 멀리 보이는 이유가 아닙니다. 궁금해 할 것 같은데, 왜냐하면 내 물건이 내 왼쪽 상단에 놓여 있기 때문입니다. 나는이 객체를 타일링하여 아마 오른쪽으로 멀리 밀어 넣을 것이다. ?? – numerical25

관련 문제