Xpoint
   [напомнить пароль]

Stage.width в разных браузерах

Метки: [без меток]
2006-08-01 05:49:52 [обр] karaboz(0/21)[досье]

Сегодня столкнулся с очень странным поведением IE.

У меня в action script стоит следующее:

Stage.scaleMode = "noScale";
Stage.align = "TL";

А сам флеш объект имеет width="100%" и height="100%"
(т.е. я растягиваю Stage по всему окну)

И по каким-то причинам в IE Stage.width=0 в несколько первых секунд работы программы!!! Скажите, как такое может быть?! (В других браузерах stage.width сразу же равно размеру браузера)

p.s.

  1. при тестировании swf файла все нормально
  2. при первом запуске IE все нормально - т.е. проблема при рефреше страницы

У меня из-за этого глюка неправильно позиционируются объекты, привязанные к Stage.width

спустя 9 минут [обр] karaboz(0/21)[досье]
Протестил на getTimer().
Получилось, что результат становится надежным (т.е. 100% ненулевым - только после 230-250мс c начала проигрывания фильма). Чудеса - да и только... эххх...
спустя 16 минут [обр] karaboz(0/21)[досье]

Чертовщина какая-то!
запустил инициализирующую функцию на 1мс позже

tmpInt=setInterval(init,1);

и все заработало в IE тоже....

p.s. черт, я думал хаки - это только для CSS (=

спустя 2 минуты [обр] karaboz(0/21)[досье]
получается как с оркетстром: "на счет раз-два-три: начали!" хехе
спустя 30 минут [обр] karaboz(0/21)[досье]

а вот и теоретическое обоснование:

Stage.width, свойство
Ошибки реализации
Если scaleMode равно "noScale" и обращение к свойству width происходит из нескольких первых кадров фильма, то возвращаемое им значение может быть неверным. Для надежности пропустите несколько первых кадров, прежде чем обращаться к width, или, что еще лучше, обращайтесь к немк только внутри приемника onResize() Колин Мук, Action Script для Flash Mx / Подробное руководство, стр. 862

спасибо всем, кто принимал участие в этой дискуссии!!! (=

спустя 1 час 46 минут [обр] Алексей В. Иванов(276/2861)[досье]
Я с таким тоже встречался. Долго бился т.к. тех. обоснования этому не было. В конце концов сделал задержку: if (!Stage.width) gotoAndPlay(1);
спустя 12 часов [обр] karaboz(0/21)[досье]
Алексей В. Иванов[досье] спасибо за поддержку: дух тьмы был изгнан из нашего радужного мира! (= Теперь у нас есть три способа борьбы.
Powered by POEM™ Engine Copyright © 2002-2005