2012-10-16 279 views
0

我的頁腳有一堆選項卡,每個選項卡都打開一個彈出窗口。雖然有一個小故障,一旦彈出窗口打開,如果我調整瀏覽器的大小,那麼我的彈出窗口不會自動調整大小以匹配新的窗口配置。實質上,彈出窗口的尺寸是靜態的,而不是動態的。Flex:重新調整瀏覽器窗口彈出窗口大小

我想刪除這個小故障,但我不知道我該如何去實現這一點。這就是我如何配置彈出窗口的尺寸。

var stagePt:Point = new Point(); 
popup.x = 80; 
popup.y = stagePt.y-(footerPopupContainer.height+15); 
popup.drawPointerPopup(stagePt,popup); 

實現此目的的一種方法是在調整瀏覽器窗口大小時使用新維度重新繪製彈出窗口。基本上,一個resize事件將爲上面的彈出窗口設置x和y屬性(也就是說,如果它已經打開),然後調用drawPointerPopup方法。但這不是一個流暢的方法。

如果上述內容不是彈出式窗口,並且只是一個div,當單擊相應的頁腳選項卡時,其可見性會被觸發或關閉,那麼就不存在這個問題。但我認爲這會發生,因爲彈出窗口本質上是一個新的瀏覽器窗口(絕對是HTML,對Flex沒有把握)。我當然不能用一個div來代替它,因爲我正在處理遺留代碼。

無論如何,我必須得到一個解決方案。任何線索非常感謝:)

回答

1

我會去與事件選項。

爲視圖的resize事件添加事件偵聽器。在處理程序中,在彈出窗口上觸發一個事件來調整其大小,或者將其從添加到舞臺的類中調整大小。

這將是我應該這麼做的最mvc的方式。

+0

嗯..這實際上是我提到的,這是我目前正在探索的選項,但有它的侷限性,因爲調整大小不夠流暢,更突然.... – user1020069

+0

你可以詳細說明你的意思嗎?將它添加到舞臺的類的彈出窗口?謝謝 – user1020069

+0

那麼,當你創建彈出窗口時,創建它的類將有一個對該彈出窗口的引用,並且可能是一個關閉處理程序等。如果你傾聽來自該類的Application或Container resize事件,則可以調整調整大小處理程序中的彈出窗口。或者,您可以擴展彈出類,並將調整大小處理程序添加到您的自定義彈出窗口。不知道這是否有任何幫助! – Ryan

相關問題