내 Flex 4.5 응용 프로그램에는 러시아와 우크라이나의 많은 사용자가 인터넷 연결이 불량하고 소켓 연결이 자주 중단되어 다시 연결해야합니다. Flex 응용 프로그램을 백엔드에 다시 연결하는 동안 배경 흐리게 및 비활성화
은 현재 내가 currentState를 설정 IOErrorEvent.IO_ERROR 및으로 Event.CLOSE 이벤트에 "오프라인"디스플레이 단지 1 개 구성 요소를 그 상태로 :<mx:ProgressBar indeterminate="true"
horizontalCenter="0" verticalCenter="0"
label="Reconnecting..." labelPlacement="center"
includeIn="offline" />
그러나 이것은 가장 좋은 방법이 아니다 - 사용자는 갑자기 때문에 흰색 화면과 진행률 표시 줄로 표시되며 배경은 사라집니다.
(실제로는 응용 프로그램이 아니라 카드 게임이므로 사용자는 적어도 재 연결 중에 카드를 연구 할 수 있습니다.)
mx.controls.Alert과 비슷하지만 OK 단추가없고 소켓 연결이 복원 될 때 해제되는 것처럼 Flex에서 배경을 흐리게 처리하거나 비활성화하는 방법이 있다면 궁금합니다.
UPDATE : 크리스 제안하지만, 불확정의 ProgressBar 어떤 이유로 애니메이션되지 않는 나는 PopUpManager를 사용했습니다
. 어떻게 시작할 수 있습니까?
에 MyApp.mxml :
Loading.mxml<?xml version="1.0" encoding="utf-8"?>
<s:Application
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="700" height="525"
backgroundColor="#CCFFCC"
initialize="systemManager.stage.scaleMode=StageScaleMode.SHOW_ALL"
applicationComplete="init()">
<fx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import mx.controls.ProgressBar;
private function init():void {
var bar:Connecting = PopUpManager.createPopUp(this, Connecting, true) as Connecting;
PopUpManager.centerPopUp(bar);
}
private function fullScreen(event:MouseEvent):void {
stage.displayState =
stage.displayState == StageDisplayState.NORMAL ?
StageDisplayState.FULL_SCREEN :
StageDisplayState.NORMAL;
}
]]>
</fx:Script>
<s:states>
<s:State name="normal" />
<s:State name="connected" />
</s:states>
<s:CheckBox right="10" bottom="10"
label="Full screen"
click="fullScreen(event)" />
</s:Application>
:
<?xml version="1.0" encoding="utf-8"?>
<mx:ProgressBar
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
indeterminate="true" fontWeight="normal"
label="Connecting..." labelPlacement="center">
</mx:ProgressBar>
UPDATE 2 :
당신이 때 그룹
훌륭한 답변 주셔서 감사합니다. 투표를 해 주셨습니다. Chris에게 친환경 "수상"체크 표시를 해 놓았습니다. ProgressBar를 보여줘야하기 때문입니다. –
그게 전부입니다. 왜 다른 최상위 구성 요소를 사용하여 동일한 작업을 수행 할 수 있다고 말했습니까? 이렇게하면 전체 애플리케이션을 비활성화하지 않고 원하는 부분 만 사용할 수 있습니다. 예를 들어 ProgressBar는 실제 게임이 포함 된 구성 요소 위에 활성화되어있을 수 있습니다. 이 방법의 장점은 앱의 어떤 부분을 사용 중지할지 결정할 수 있다는 것입니다 (예 :연결이 필요하지 않은 모든 요소는 여전히 액세스 할 수 있습니다). – RIAstar