2013-12-10 2 views
0

나는 무비 클립 (startMenu)이있다; 그 안에는 단추, 텍스트 및 그래픽이 있습니다. 이것은 내가 만들고있는 게임이며 Android의 다양한 화면 크기에서 재생됩니다. 이것은 내가 지금까지 가지고있는 코드입니다 : 내가 디버깅을 사용하여 다른 휴대폰에서 실행하면무비 클립을 화면 크기에 따라 크기를 조정하려면 어떻게해야합니까?

stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.align = StageAlign.TOP_LEFT 
startMenu.addEventListener(Event.RESIZE, resizeLayout); 
function resizeLayout(e:Event):void 
{ 
    setPosition(); 
} 
function setPosition():void 
{ 
    startMenu.x = (stage.stageWidth - startMenu.width)/2; 
     startMenu.y = (stage.stageHeight - startMenu.height) /2; 
} 

, 그것은 왼쪽 코너에 고정,하지만 전체 화면에 맞게 스트레칭 않습니다. 어떻게해야합니까?

답변

0

크기를 조정할 때 콘텐츠가 늘어나고 stage.scaleMode = StageScaleMode.NO_SCALE;을 수정하면 어딘가에있는 클립의 너비/높이가 수정되는 것입니다.

대신
// deforms the image 
myClip.width = stage.fullScreenWidth; 
myClip.height = stage.fullScreenHeight; 

당신은 단지 하나의 차원의 크기를 조정하고이 같은 기준으로 다른 비율 조정해야합니다 :

// keeps ratio 
myClip.width = stage.fullScreenWidth; 
myClip.scaleY = myClip.scaleX; 
을 난 당신의 코드베이스를 볼 수 없기 때문에

나는 단지 그것을 다음과 같이 보일 것입니다 상상할 수

분명히 콘텐츠의 크기를 어느쪽으로할지 항상 알 수는 없으므로 먼저 어떤 쪽이 더 큰지 확인하고 싶을 수 있습니다. 이 같은 예를 들면 : 당신이했던 것처럼 다음

if (myClip.width > myClip.height) 
{ 
    myClip.width = stage.fullScreenWidth; 
    myClip.scaleY = myClip.scaleX; 
} 
else 
{ 
    myClip.height = stage.fullScreenHeight; 
    myClip.scaleX = myClip.scaleY; 
} 

와, 컨테이너에 클립을 정렬 :

// multiplication works faster, keep that in mind if resizing on each frame or something like this 
// But more importantly - getting width/height is pretty expensive, for frequent resizing pre-calculate and store the width height to avoid recalculation 
startMenu.x = (stage.stageWidth - startMenu.width) * .5; 
startMenu.y = (stage.stageHeight - startMenu.height) * .5; 
관련 문제