问题
在IE中调整Flash对象的大小时,它的调整大小处理程序错误地认为只有阶段宽度已更新。
重现错误的步骤
的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 for Flash以确认其在IE8中的真实高度
答案 0 :(得分:0)
不确定为什么会这样,但我建议(或强烈建议)在闪存端添加回调,并从javascript触发它以强制进行调用。
查看ExternalInterface.addCallback
我可以继续讨论如何使这部分(js< - > Flash communicaiton)正常工作,但有人已经这样做了。
http://www.viget.com/inspire/bi-directional-actionscript-javascript-communication/
答案 1 :(得分:0)
答案 2 :(得分:0)
我通过第二次设置Flash的高度来解决这个问题。即使它被设置为相同的高度,它也会诱骗IE重绘页面。