2011-11-08 26 views
0

因此,我有一個Flash應用程序,它根據舞臺高度和寬度動態更改其自身和組件的高度和寬度。縮放以適應Flex 4 - Flash應用程序

這個應用程序將在屏幕上單獨運行屏幕的高度和寬度可以是任何東西(測試和應用程序完美的作品,並調整其組件和所有必需的對象在屏幕上)

而給這個應用程序從窗口中獲得flashvars和文本信息......連接到具有固定寬度和高度的預覽窗口的應用程序被查看,但它將自己調整爲固定窗口的寬度和高度。

我確實有寬度和高度的應用程序實際上將在屏幕上查看。

如何根據真實的寬度和高度來縮放應用程序(縮放以適合預覽窗口),如果它的上下和左右都有空白,則可以。

+0

用於將SWF放入HTML頁面的嵌入標籤可以控制應用程序的縮放比例。我想你想讓應用程序佔用整個屏幕並自行調整大小? – gthmb

+0

根據我這樣做的一個更好的方法是給你的內部組件一個百分比的寬度和高度,而不是以像素爲單位。 – Neeraj

+0

這樣,每次調整大小時,都不需要更改每個內部組件的高度/寬度。以編程方式,您可以使用percentageWidth和percentageHeight屬性更改百分比寬度和高度 – Neeraj

回答

0

您將需要使用stage.stageWidth/stage.stageHeight來獲取嵌入的大小。並使用Event.RESIZE事件來處理舞臺大小在運行時更改的時間。那麼你只需要一些相當簡單的縮放邏輯來保持你的寬高比被檢查。

類似:

// disables streching 
stage.scaleMode = StageScaleMode.NO_SCALE; 

// listen to stage being resizes 
addEventListener(Event.RESIZED, handleResized); 

// adjust UI to original size 
setSize(stage.stageWidth, stage.stageHeight); 

// handle the resized event, and update your UI's dimension 
function handleResized(evt:Event):void 
{ 
    setSize(stage.stageWidth, stage.stageHeight); 
} 

// updates your UI 
function setSize(wid:int, hgt:int):void 
{ 
    container.width = wid; 
    container.height = hgt; 
} 

將擴展您的應用程序的舞臺大小。如果您需要保持應用程序的縱橫比,則可以調整嵌入SWF的方式,也可以自己在setSize函數中處理縱橫比邏輯。