Добрый день!
Добиться динамического изменения размера флеш ролика с помощью JS можно множеством путей. И подобрать самый подходящий можно только самостоятельно исходя из задач и требований к конкретному проекту.
Один из вариантов изменения размера swf с использованием jQuery достаточно подробно описан, например, вот
здесь.
Но можно пойти другим путем:
Пример динамического изменения размера flash-ролика с использованием JavaScript и SwfFit В примере использован маленький скрипт (размер всего 4кб)
SWFFit , основная задача которого - динамическое изменение размеров флеш ролика в заданных пределах.
Его настройка очень проста:
1) Подключаете скрипты SWFObject и SWFFit.
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="swffit.js"></script>
2) Регистрируете объект с флешем.
swfobject.embedSWF("fdp_2_3_1_b.swf", "my_flash", "100%", "100%", "10.0.0");
3) Применяете SWFFit.
swffit.fit("my_flash",100,200, 1000,700);
"my_flash" - имя зарегестрированного с помощью SWFObject флеш объекта;
100 - минимально допустимая ширина ролика;
200 - минимально допустимая высота ролика;
1000 - максимально допустимая ширина ролика;
700 - максимально допустимая высота ролика.
Код работающего примера можно посмотреть по ссылке, скрипт можно скачать с сайта разработчика.
Ну и напоследок еще один вариант решения проблемы, без скриптов, а только с использованием freeDEXpano.
В программе есть событие
eventSizeChanged, параметры
_width и
_height, а в скриптах можно использовать условие
if и математические выражения.
Так что можно задать ширину и высоту ролика 100%, а потом с их помощью, при изменении размеров ролика задавать любые необходимые значения высоты и ширины для объекта панорамы.
Как пример:
<script event="eventSizeChanged" if="|@{api._width}|lt|1000|" else="script_else">
<pr id="pano" width="0" width_px="1000" />
</script>
<script id="script_else">
<pr id="pano" width="100" width_px="0" />
</script>