Вопрос

У меня есть div, содержащий список объектов flash.Список длинный, поэтому я установил высоту div равной 400 и значение переполнения auto.

Это отлично работает на FF, но на IE6 работают только первые 5 видимых флэш-объектов.Остальные объекты flash, которые изначально находятся за пределами видимой области, становятся пустыми при прокрутке вниз.SWFS загружены нормально, потому что я не получаю сообщение "фильм не загружен".Они также, кажется, встроены правильно, они просто пустые ie.содержимое никогда не рисуется.

Есть какие-нибудь идеи о том, как это исправить?

ps.Задействованные html-элементы в основном являются плавающими на случай, если это повлияет на это.Флэш-объекты внедряются с использованием популярного SWFObject.

Редактировать:Похоже, что ошибка возникает только с flash-плагином "WIN 8,0,24,0".

Поскольку я не могу опубликовать ссылку, я кратко изложу соответствующий код здесь:

<div style="overflow:auto; height:400px; float:left;">
<div id="item_1" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
...
<div id="item_7" style="float:left; clear:left; height:100px;">
<!-- swfObject Embed here -->
</div>
</div>

Редактировать:После попытки воссоздать эту проблему на отдельной странице я обнаружил, что ошибка каким-то образом связана с тем, что объекты flash были скрыты изначально.Мой контейнерный div имеет "display: none;видимость: скрытая" при загрузке страницы.Позже стиль будет изменен с помощью javascript на видимый.Если я загружу страницу так, чтобы все было видно с самого начала, все будет в порядке.

Это было полезно?

Решение 4

Я думаю, у меня есть решение для этого.Я не могу быть абсолютно уверен, так как страница, о которой идет речь, была реструктурирована (из-за этой ошибки).Позже я наткнулся на аналогичную проблему с тем же компонентом flash на другой странице.

Проблема заключалась в том, что иногда flash выдает стадию.высота = 0 и стадия.ширина = 0.Скорее всего, это произойдет, когда flash запускается за пределами окна просмотра браузера.Мы используем размеры сцены для масштабирования содержимого (в данном случае до width=0 и height=0).

Решение состояло в том, чтобы добавить обработчик onEnterFrame, который проверяет размеры этапа и переходит к работе только тогда, когда они равны > 0.

Другие советы

Когда я тестирую подобные вещи в IE6, первое, что я делаю, это начинаю удалять информацию о стиле.Начните с удаления всех значений float и очистки как из родительского DIV, так и из дочерних DIV.Если это не сработает, удалите все отступы и поля и предоставьте родительскому DIV и дочерним DIV-элементам ширину 100% (оставив вашу высоту 100 пикселей).Если это не сработает, тогда опубликуйте ответ здесь.Если бы мне пришлось рискнуть предположить, я бы сказал, что это потому, что ни у одного из ваших DIVs нет ширины, но это дикое предположение, основанное на том, что я знаю об "ошибке peekaboo".

Несколько вещей, которые я бы попробовал:

  • временно удалите весь CSS, чтобы определить, является ли проблема специфичной для CSS
  • добавьте ширину пикселя к плавающим элементам, а также к их родительскому элементу
  • добавьте параметр wmode transparent в swfobject
  • добавить позицию: относительная

Я слышал об ошибке во Flash, которая, по-видимому, возникает только в том случае, если flash загружается частями за пределами экрана (т.е.тело > #flash {верхнее поле:-50 пикселей}).Ваша проблема потенциально может быть разновидностью этого.

В качестве альтернативы, вы могли бы вообще удалить div с overflow и попробовать создать контейнер во flash с полосой прокрутки и загрузить отдельные SWFS-файлы в этот единый флэш-файл контейнера.

Это всего лишь обходной путь, но вы могли бы попытаться изначально создать заполнители для объектов Flash (например, div с соответствующей высотой и шириной) и загружать только фильм (с помощью чего-то вроде swfобъект) когда это впервые становится видимым.Это может создать некоторые проблемы (например, фильмы не загружаются до того, как они станут видны), но это может быть приемлемо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top