2011-07-30 3 views
2

Flash Builder에서 AIR 응용 프로그램을 만들고 stage.stageWidth 과 같은 것을 가져와야합니다. 그러나 stage.stageWidth이 작동하지 않고 nativeWindow.width이 윈도우의 폭을 반환합니다. 콘텐츠/스테이지 폭이 필요합니다. 어떤 방법이 있습니까?플래시 빌더 - 스테이지 폭 가져 오기

thanks

+0

"stage.stageWidth"가 작동하지 않는 이유는 무엇입니까? 조금 더 자세히 설명해 주시겠습니까? –

답변

1

stage.stageWidth 거의 윈도우와 동일한 크기를 뺀 크롬되어야 전체 스테이지의 폭을 반환한다. 스테이지에 추가되는 내용을 모두 가져 오려면 스테이지에 단일 컨테이너를 추가하고 모든 객체를 추가 한 다음 해당 컨테이너의 너비/높이를 확인하는 것이 가장 쉬운 방법입니다. 이렇게하면 표시 목록 (이 컨테이너 또는 그 자식 중 하나)에 생성하여 추가 한 모든 객체의 누적 너비/높이를 정확하게 알 수 있습니다.

또는 문서 클래스를 사용하는 경우 기본적으로 해당 문서 클래스는 기본적으로 스테이지에 추가되는 컨테이너이므로 스테이지에 추가하는 대신 해당 문서 클래스의 하위 항목으로 추가하십시오. 그런 다음 문서 클래스의 너비/높이를 확인하십시오. 예 :

package com.katruax.collageapp 
{ 
    import flash.display.MovieClip; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    /** 
    * ... 
    * @author Jesse Nicholson 
    */ 
    public class MyApp extends MovieClip 
    {  

    public function MyApp() 
    {  
     if (stage) { 
      init(); 
     }else { 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     }   
    } 

    private function init(e:Event = null):void 
    {  
      //Set the alignment and scale mode of the stage 
      stage.scaleMode = StageScaleMode.NO_SCALE; 
      stage.align = StageAlign.TOP_LEFT; 


      var movieClipA:MovieClip = new SomeLibraryMovieClip1(); 
      var movieClipB:MovieClip = new SomeLibraryMovieClip2(); 
      this.addChild(movieClipA); 
      this.addChild(movieClipB); 
      trace(this.height, this.width); 
    } 

} 

스테이지 스케일 모드와 정렬 모드를 설정합니다. 이는 AIR 1.0에서 이러한 속성을 설정하지 않으면 스테이지에서 객체 위치 및 높이/너비를 설정할 때 왜곡 된 결과가 발생하고 그 원인은 크기 조정 때문일 수 있습니다. 스테이지가 어떤 이유로 NativeWindow 내부의 X/Y를 따라 번역 할 수있는 것처럼 보였습니다. 더 이상 그렇지 않을 수도 있지만 어쨌든 좋은 연습입니다. 희망이 도움이됩니다.

+0

게시물에 따르면, 나는 단지 '너비'와'높이'를 사용할 수 있다는 것을 알았습니다. 고마워요. – simPod

관련 문제