2012-08-30 5 views
1

플렉스에서 사용 가능한 브라우저 너비와 높이를 얻으려면 어떻게합니까? 플래시가 아닌 브라우저의 너비와 높이를 가져 오려면 어떻게해야합니까?브라우저의 너비와 높이를 가져 오십시오.

총 모니터 해상도를 제공하는 Capabilities.screenResolutionY 및 screenResolutionX가 있으며 stage.stageWidth 및 stage.stageHeight가 있지만 문서에 "Stage 객체의 stageWidth 속성을 호출하면 모든 호출자에 대해 예외가 발생합니다. 스테이지 소유자 (기본 SWF 파일)와 동일한 보안 샌드 박스에 있지 않습니다. " 그리고 때때로 stage 속성은 null입니다 (임의의 클래스에있는 것처럼 비 표시 객체에서 어떻게 가져 옵니까?).

그렇다면이 방법을 사용하여 Flex를 수행하고 오류가 발생하지 않도록하십시오. (어떤 시점에서 다른 응용 프로그램이 내 응용 프로그램을로드 할 수 있습니까?)

~ UPDATE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
그래서 나는 몇 가지 테스트를 해 봤는데 그것은

Rectangle(systemManager.getVisibleApplicationRect()).width 
Rectangle(systemManager.getVisibleApplicationRect()).height 

같은 탄력성을 보이는 나에게 필요한 정보. 이것들은 응용 프로그램 초기화에서도 사용할 수 있습니다. 또한

,
systemManager.stage.stageWidth 
systemManager.stage.stageHeight 

나에게 동일한 정보를 제공합니다.

systemManager는 응용 프로그램 및 모든 UIComponent의 속성이므로 해당 클래스 중 하나에 있지 않으면 (그리고 UIComponent의 경우에는 응용 프로그램의 자식이라고 생각합니다.) 여전히 얻을 수있는 방법을 찾아야합니다. 다른 유형의 클래스에서 systemManager에 대한 참조

~ UPDATE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
그래서 freakazoid_em은 FlexGlobals.topLevelApplication을 사용하여 systemManager에 대한 참조를 얻을 수 있다고 설명했습니다. 이를 통해 Flex 애플리케이션에서 언제 어디서나 브라우저의 너비와 높이를 확인할 수 있습니다.

+0

무엇 높이 당신이 "높이와 브라우저 윈도우의 폭? 아니면"볼을 찾고있다 "브라우저 영역 (아무 도구 모음하거나 탭 스크롤바 또는 크롬)? stageHeight도 및 stageWidth로 당신의 크기를 제공한다" Flash Player 직사각형 "이지만 브라우저와 관련이 없을 수도 있습니다. applicationComplete 이벤트가 발생한 후 Flex에서 스테이지에 액세스하는 데 문제가 없어야합니다. 그 전에는 무대에 아무것도없고 무대에 액세스 할 수 없습니다. – JeffryHouser

+0

메인 애플리케이션 (Main.mxml)에서'this.explicitHeight'와'this.explicitWidth'를 사용하면 다른 HTML 페이지에 임베드 될 때 애플리케이션의 너비와 높이를 줄 수 있습니다 –

+0

아래 링크는 도움이 될 수 있습니다 : - http : //flexdevtips.blogspot.in/2010/08/detecting-browser-height.html –

답변

0
var visibleWidth:Number = FlexGlobals.topLevelApplication.systemManager.getVisibleApplicationRect().width; 
var visibleHeight:Number = FlexGlobals.topLevelApplication.systemManager.getVisibleApplicationRect().height; 

// this seems to return the same values 
var visibleWidth:Number = FlexGlobals.topLevelApplication.systemManager.stage.stageWidth; 
var visibleHeight:Number = FlexGlobals.topLevelApplication.systemManager.stage.stageHeight; 
관련 문제