調整時,在IE Flash對象,它的調整處理不當認爲只有舞臺寬度已經更新。
步驟再現您滾動和點擊的Flash 按鈕
- 。 JS 調整Flash等。
- 在 所有非IE瀏覽器,閃存是 通知的尺寸變化和 完美地執行其調整大小處理程序。 在IE8, 調整大小處理程序被調用,但是 只有其階段寬度已更新。它仍然認爲它的高度是一樣的。
- 爲了最終讓IE8的Flash確認其真實高度,請將鼠標移出SWF。
的Actionscript
package {
import flash.external.*;
public class Player {
public function Player(container:Stage) {
this.container.addEventListener(Event.RESIZE, this.onResize);
}
public function expand():void {
ExternalInterface.call('expand');
}
public function onResize():void {
// float chrome buttons to the right
// float chrome to the bottom
}
}
}
的Javascript
// Using Prototype framework
function expand() {
$('flash').setStyle({
width: '500px',
height: '400px'
});
// do other stuff in JS too
}
監聽器被觸發,除了Internet Explorer中的所有瀏覽器的罰款。 Javascript沒有問題 - 我看到Flash被調整大小。但是,在我的鼠標移出SWF之前,Actionscript偵聽器不會被觸發。我需要了解IE的渲染引擎來解決這個問題?
以前
後 - IE的Flash通知寬度的變化,但仍然認爲它是高度是一樣的。
移動鼠標了SWF的 - 你必須把鼠標出的SWF爲Flash承認其真實身高在IE8
我試圖使用ExternalInterface來顯式調用Flash的調整大小處理程序後Javascript正在調整大小,但它仍然在IE中損壞。看起來好像IE的DOM操作不同步。也就是說,如果我在DOM更改後立即調用ExternalInterface,則不會在DOM更改之後調用ExternalInterface調用*。 – JoJo 2011-01-21 18:28:36