2008-11-25 65 views

回答

0

可惜沒有,我覺得你可以做到這一點的唯一方法是首先擺脫HTML包裝的。 HTH。

2

我不知道我完全明白這個問題,你試圖讓aplication有一個大小不是瀏覽器的視口大?如果是這樣,那麼@hasseg評論和@RickDT提到,你可以設置應用程序的horizo​​ntalScrollPolicy和/或verticalScrollPolicy屬性爲「關閉」?

如果你只是想確保你的應用程序擴展與更改瀏覽器的形狀和大小,然後確保你設置以下(或適應值)在最外層的應用程序標籤。

percentWidth="100" 
percentHeight="100" 
+0

應用程序是一個mx.core.Container,因此您可以設置其horizo​​ntalScrollPolicy和verticalScrollPolicy屬性。 – hasseg 2008-11-26 16:23:25

3

這是可能的。有關示例,請參閱fi新的Kontain。您可以通過創建新博客文章並在輸入字段中添加行來直接看到它。隨着輸入字段的大小增加,頁面變得更高。

你必須通過ExternalInterface的Flash和JavaScript之間進行協調。當你的Flex應用程序需要改變大小時,找到新的大小(可能通過挖掘Flex的佈局引擎),並通過ExternalInterface將其提升到Javascript函數。然後JavaScript可以在容器上設置一個新的高度屬性。您可能還需要在標籤上設置verticalScrollPolicy =「off」,以便Flex在佈局引擎運行時不顯示滾動條。

4

,最好的辦法應該重寫應用程序的措施方法,如:

private var _lastMeasuredHeight:int; 

override protected function measure():void 
{ 
    super.measure(); 
    if (measuredHeight != _lastMeasuredHeight) 
    { 
     _lastMeasuredHeight = measuredHeight; 
     if (ExternalInterface.available) 
     { 
      ExternalInterface.call("setFlashHeight", measuredHeight); 
     } 
    } 
} 

此函數假設你有一個JavaScript函數名爲setFlashHeight它可以接受的高度(或任何你的名字)的參數。一個例子是:

function setFlashHeight(newHeight){ 
    //assuming flashDiv is the name of the div contains flex app. 
    var flashContentHolderDiv = document.getElementById('flashDiv'); 
    flashContentHolderDiv.style.height = newHeight; 
} 

我使用swfobject來嵌入我的flex應用程序。所以Flash對象駐留在一個div內。如果你沒有;可以很容易地改變js函數來設置flash對象的高度。當你實現這個解決方案時,你會注意到,由於flash消耗事件,所以scrollBars不工作。但是,這是另一個問題......

+0

我已經成功地應用了這項技術,但每次我調整flash對象的大小時,它都會變形幾毫秒,這在視覺上很不吸引人。請在這裏詳細看看我的問題(http://stackoverflow.com/questions/6642669/resize-flash-object-from-the-browser-without-flickering) – user802232 2011-07-10 17:35:49

0

沒有必要對所有的,只是從火花改變應用程序的mx。這將會被自動顯示,因爲我覺得火花不支持在所有(我認爲這是從Adobe愚蠢的錯誤)

這樣的:而不是

<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > 

</mx:Application> 

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" > 

</s:Application> 

許可申請標籤沒有高度規格「不使用高度=」100%「

相關問題