我有一個非常普遍的問題,並準備了一個簡單的測試用例。將Flex組件放置在屏幕中間
當使用BasicLayout(即絕對定位)時 - 將Flex組件放置在應用程序中心的最佳方法是什麼?
在測試情況下,下面我使用X =「{寬度/ 2}」但是這給我至少2個問題:
如何佔組分尺寸(測試用例中的ProgressBar)?
是否有約束力{width/2}一個好主意?在某些情況下它不會發送不必要的DATA_CHANGE事件嗎?
最後我不知道,這一切是如何適用於使用StageScaleMode.SHOW_ALL全屏應用程序 - 因爲目前我的應用程序放置在頂部的左在全屏模式下,有一個白色的死區在它的右邊。 (這至少與純Flash/AS3行爲有所不同,其中全屏幕內容顯示在屏幕中心和左右兩個死區)。
<?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">
<fx:Script>
<![CDATA[
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)" />
<mx:ProgressBar indeterminate="true"
x="{width/2}" y="{height/2}"
label="Connecting..." labelPlacement="center"
includeIn="normal" />
</s:Application>
比這更容易
All right horizontalCenter =「0」完美地工作(我是一個Flex新手)。 –
不,我確實想使用StageScaleMode.SHOW_ALL,但我希望我的內容放置在屏幕中間,而不是與左側對齊。背景是我有一款主要由老年人玩的紙牌遊戲,所以他們點擊全屏並獲得大的信件/卡片:http://apps.facebook.com/video-preferans/ –
SHOW_ALL播放不好與Flex應用程序。解決問題並不容易。我認爲你最好的選擇是用相對大小而不是固定大小來定義你的所有組件。如果使用矢量圖形,視覺效果也會更好(不模糊)。 – RIAstar