Jing + swfobject 2.2 = большое видео в маленьком div
Я пытаюсь использовать swfobject 2.2 для отображения SWF, но SWF не будет масштабироваться в соответствии с div, в который я его помещаю. Вы можете увидеть, что у меня здесь.
Когда он впервые загружается, он имеет правильный размер, а затем почему-то расширяется. Если щелкнуть правой кнопкой мыши фильм и выбрать "Показать все", он идеально подходит.
Вот код для генерации sfobject:
var flashvars = {};
var params = {}
params.scale = "showAll";
params.allowscriptaccess = "always";
var attributes = {};
swfobject.embedSWF("/content/tour.swf",
"flashContent", "900", "700", "9.0.0", "expressInstall.swf",
flashvars, params, attributes);
Любая помощь / предложения будут с благодарностью!
5 ответов
Чтобы сделать размер div установленным для размера swf (или, вернее, Flash Player), вы можете использовать "100%" для размера в вызове swfobject.embedSWF() вместо размера в пикселях.
swfobject.embedSWF("/content/tour.swf", "flashContent", "100%", "100%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
Другой параметр для работы scale
, Альтернативы:
"showAll": все приложение видно в указанной области без искажений при сохранении исходного соотношения сторон приложения. Границы могут появляться на двух сторонах приложения.
"точная подгонка": все приложение отображается в указанной области, не пытаясь сохранить исходное соотношение сторон. Может произойти искажение, и приложение может выглядеть растянутым или сжатым.
"noBorder": все приложение заполняет указанную область без искажений, но, возможно, с некоторым обрезанием, сохраняя при этом исходное соотношение сторон приложения.
"noScale": все приложение исправлено, поэтому оно остается неизменным даже при изменении размера окна проигрывателя. Обрезка может произойти, если окно проигрывателя меньше, чем содержимое.
Как правильно ответил TestPlanManagement.com, видео Jing не может быть масштабировано. Но SWF может быть изменен, чтобы позволить это. См. Изменение размера встроенных скринкастов с TechSmith Jing. Коммерческий Action Script Viewer используется для изменения константы в SWF.
Вам нужно добавить дополнительный скрипт, например, так:
function resizeFlashDiv()
{
var theDiv = document.getElementById("navContainer");
var theHeight = Math.floor(theDiv.offsetWidth * .33625) + 50; // add
the variable portion plus the fixed portion of the Flash
theDiv.style.height = theHeight + "px";
}
Это заставит ваш SWF заполнить DIV.
Самое быстрое, что я могу придумать, это просто установить ширину на 100%. Я проверил, и, кажется, работает нормально:
Ларс уже опубликовал все доступные альтернативы.
HTH, Джордж
Проверьте внутри загруженного SWF-кода, если вы устанавливаете stageScaleMode в noScale. Это было источником моей проблемы.