Как включить содержимое HTML поверх содержимого Flash без снижения частоты кадров?
Я разрабатываю приложение Flash, которое взаимодействует с Javascript, чтобы предоставить больше возможностей, таких как пользовательский ввод HTML и т. Д., Помещая div с абсолютным позиционированием поверх приложения Flash и контролируя его положение и т. Д. С помощью Flash & Javascript.
Поскольку эти HTML-элементы должны отображаться над содержимым Flash, я подумал, что для выполнения этой задачи достаточно будет следующего базового CSS:
#flashContent {
position: absolute;
left: 0px;
top: 0px;
z-index: 0;
}
#htmlContent {
position: absolute;
left: 200px;
top: 200px;
z-index: 1;
width: 200px;
height: 200px;
background-color: yellow;
}
Итак htmlContent
имеет более высокий z-индекс, чем содержимое флэш-памяти, поэтому его следует показывать над ним. К сожалению, кажется, что это работает только тогда, когда вы устанавливаете параметр wmode объекта Flash в значение "прозрачный".
Проблема с этим параметром в том, что он серьезно снижает частоту кадров приложения до недопустимого уровня.
Для статического контента это, похоже, не проблема, однако для моего приложения есть все виды элементов, которые вы можете перетаскивать, которые нужно перемещать в режиме реального времени (при перемещении мыши).
Итак, как включить html-контент поверх флэш-содержимого без использования "прозрачного" параметра wmode или как оптимизировать частоту кадров при использовании "прозрачного" параметра wmode?
3 ответа
Вы можете использовать wmode = 'opaque' и по-прежнему использовать z-index'ing. Прозрачный может быть очень глючным.
Если вы уже используете javascript для отображения нового слоя сверху, вы можете просто спрятать флэш-память, пока включен div, и показать ее снова, когда закончите.