У меня есть простое приложение Flex, которое представляет собой панель с повторителем внутри нее; хоть и немного упрощенно, но вот так:
<mx:Panel id="pnl">
<mx:Repeater id="rp">
<mx:Label text = "foo" />
</mx:Repeater>
</mx:Panel>
Затем я встраиваю это приложение Flex в оболочку HTML. Затем я пытаюсь динамически изменять размер встроенного объекта Flash в HTML по мере изменения размера панели Flex (что позволяет приложению Flex использовать столько HTML-страницы, сколько ему нужно).
Я делаю это, выполняя следующие действия:
pnl.addEventListener(ResizeEvent.RESIZE,function(event:Event):void {
ExternalInterface.call("resize",event.target.height);
});
which in turn calls this javascript function:
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 раз, а затем текст, кажется, обрезается / исчезает в ретрансляторе, см. прикрепленное изображение: http://img528.imageshack.us/img528/9538/rpre0.jpg
Может ли кто-нибудь объяснить, почему это происходит, и есть ли обходные пути / способы сделать то же самое?