2009-04-17 8 views
1

전체 Flex 브라우저 애플리케이션에 로딩 애니메이션을 적용하는 데 문제가 있습니다. Adobe의 article에 설명 된대로 DownloadProgressBar 클래스를 서브 클래 싱합니다. stageHeightstageWidth은 기본 클래스에 의해보고됩니다. 그것은 생성자에서 500x375 픽셀을 나타내고 다른 곳에서는 0x0을 말합니다. 왜?100 %에서 100 %까지 Flex 애플리케이션 프리 로더 위치 지정

답변

1

이 문제가 해결 되었습니까? 내 flex 애플 리케이션과 동일한 문제가 있습니다. 스테이지는 500x375를 반환합니다. 해결 방법이 좋지 않습니다. 이 함수는 FlexEvent.INIT_PROGRESS에서 호출됩니다. 그래서 내 응용 프로그램을 사용할 수있을 때 그 소품을 사용합니다.

private function onFlexInitProgress(event:FlexEvent):void { 
    if (Application.application != null){ 
     var appWidth:Number = Application.application.width; 
     var appHeight:Number = Application.application.height; 
     x = (appWidth * 0.5) - (preloaderSWF.width * 0.5); 
     y = (appHeight * 0.5); 
     preloaderSWF.visible = true; 
    } 
} 
0

이것이 도움이 될지 모르지만 Application.width, Application.height를 사용하여 Flex 응용 프로그램의 크기를 참조 할 수 있다고 생각합니다. 아래

http://livedocs.adobe.com/flex/3/html/help.html?content=app_container_2.html

문제들은 문제와 관련이있는 것으로 보인다 :

http://www.nabble.com/Stupid-Question---Flex-width-and-height-td21423345.html

http://www.nabble.com/Flex-stage-size-td20167125.html

http://dreamweaverforum.info/flex/125327-referencing-stage-flex.html

호프가 도움이됩니다.

0

0x0의 너비/높이 측정 값은 종종 해당 구성 요소가 하위 구성 요소를 포함하여 읽기 시간에 완전히 레이아웃되지 않았 음을 나타냅니다. 생성자에서 측정을 확인하는 것은 너무 일찍 확실합니다. 스테이지를 전체 화면으로 설정하고 표시중인 모든 항목이 아마 application creationComplete 이벤트 (아마 심지어 나중에)에 배치 된 후에 측정 값을 확인하고 싶을 것입니다.

http://blog.flexexamples.com/2007/08/07/creating-full-screen-flex-applications/

0

은 당신이하고 싶은 그 크기 조정 이벤트 무대 이벤트 리스너를 추가하고 그에 따라 프리 로더의 크기를 조정할 수 있습니다 : 다음 링크는 좋은 자원이 될 것이다. 그렇지 않으면 프리 로더가 표시되어있는 동안 다른 사람이 Flex 응용 프로그램의 크기를 조절하면 크기가 조정되지 않습니다.

stage.addEventListener(Event.RESIZE, onStageResize); 

public function onStageResize(e : Event) : void { 
    this.width = stage.stageWidth; 
    this.height = stage.stageHeight; 
} 

또는 대안 당신과 같이 코드를 사용하여 스테이지에 프리 로더를 중심으로 수

preloader.x = this.stage.stageWidth/2 - preloader.width/2; 
2

난 내 사용자 정의 진행 로더를 중심으로하는 코드를 가지고 있으며이 문서 http://askmeflash.com/article_m.php?p=article&id=7

에서 매우 잘 작동한다
+0

당신의 연결이 날이 문제를 해결 도움이 나는 스테이지 크기 업데이트지고 있다고 내 메인 클래스에서이 줄 것을 발견 . 프리 로더를 만들고 구성 요소의 중간에 영점을 설정했습니다. preloader 클래스에서 "this.x = stage.stageWidth/2"를 사용했고 구성 요소는 항상 올바르게 중심에 위치했습니다. – ufk

0

100 %에서 100 % 너비와 높이를 사용하는 플래시 빌더의 actionscript 프로젝트에서 이와 동일한 문제가있었습니다. preloader가 메인 클래스를로드 할 때까지 stage.stageWidth 및 stage.stageHeight는 500x375 였고 전체 화면 크기로 변경됩니다. 이 때문에 프리 로더에서 항목의 위치가 잘못되었습니다.

다음
stage.scaleMode = StageScaleMode.NO_SCALE; 

가 내 프리 로더에 구현 방법 :

public function Preloader() 
    { 
     addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
    } 

    private function onAddedToStage(event:Event):void { 
     removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); 
     stage.scaleMode=StageScaleMode.NO_SCALE; 
     stage.align=StageAlign.TOP_LEFT; 
     ... 
    }