【发布时间】:2008-10-29 20:36:00
【问题描述】:
我有一个简单的 Flex 应用程序,它是一个面板,里面有一个中继器;虽然有点简化,但是是这样的:
<mx:Panel id="pnl">
<mx:Repeater id="rp">
<mx:Label text = "foo" />
</mx:Repeater>
</mx:Panel>
然后我将这个 Flex 应用程序嵌入到 HTML 包装器中。然后,我尝试在 Flex 面板更改大小时动态调整 HTML 中嵌入的 Flash 对象的大小(从而允许 Flex 应用程序根据需要使用尽可能多的 HTML 页面)。
我通过执行以下操作来做到这一点:
pnl.addEventListener(ResizeEvent.RESIZE,function(event:Event):void {
ExternalInterface.call("resize",event.target.height);
});
依次调用这个javascript函数:
function resize(height) {
// the embed or object that contains the flex app
var e = document.getElementById('flex_object');
if(e) e.height = height;
}
这似乎在 IE 中完美运行,但是我在 Firefox / Safari 中得到奇怪的结果,中继器工作了 n 次,然后文本似乎在中继器,见附图: alt text http://img528.imageshack.us/img528/9538/rpre0.jpg
谁能解释为什么会发生这种情况,以及是否有任何解决方法/方法可以做同样的事情?
【问题讨论】:
标签: apache-flex actionscript-3