У меня есть простое приложение 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);
});
, которая в свою очередь вызывает эту функцию 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 количество раз, а затем текст кажется обрезанным / исчезающим в репитере см. прикрепленное изображение:
альтернативный текст http://img528.imageshack.us/img528/9538/rpre0.jpg
Может ли кто-нибудь объяснить, почему это происходит, и если есть какие-то обходные пути / способы сделать то же самое?