Простой и эффективный способ динамического изменения размера Flash встроенных объектов javascript и ActionScript.
Демо
Всегда хотели, изменять размеры флэш-роликов на лету без перезагрузки страницы? Если да, то читайте дальше!
Идея заключается в том что бы встроить ваш флэш-ролик в DIV .Изменение размера оболочки DIV с Javascipt очень прост и может быть сделано с помощью одной функции JQuery в HTML код.
Во-первых, мы должны вставить наш флэш-ролик в HTML использованием SWFObject. В нашем примере флэш-роликом является resized.swf. В раздел head мы должны вставить код
<script src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js" type="text/javascript"></script>
<script type="text/javascript">
var flashvars = {
};
var params = {
allowFullScreen: "true",
menu: "false",
wmode: "window"
};
var attributes = {
id: "resized",
name: "resized",
wmode: "window"
};
swfobject.embedSWF("resized.swf", "resized", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>
swfobject.embedSWF ("resized.swf", "размера", "100%", "100%", "10.0.0", "expressInstall.swf", FlashVars, Params, атрибуты);
</ SCRIPT>
Обратите внимание, что мы даем встроенному SWF ширину и высоту 100%, а для некоторых кэширования скорость, мы загружаем swfobect от Google.
Нам также необходимо загрузить JQuery, что потребуется для нашей функции javascript в дальнейшем. Мы загружаем JQuery также от Google, добавив еще в head теги:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
Теперь нам нужно некоторые CSS стили для DIV, что буду держать флэш-ролик и установить его начальных размеров. Для простоты мы дали ему идентификатор resized.
#resized{width:550px; height:400px; margin:20px 40px;}
Мы вставили DIV в нашей разметки, и мы также создать текстовую ссылку, которую мы будем использовать для вызова функции JQuery.
<div id="resized"></div>
<div><a href="#" onclick="ResizeFlash('800','1200'); return false">Set width: 800px - height: 1200px</a></div>
В функции ResizeFlash, первый номер (800) соответствует новой ширине (в пикселях), мы хотим, чтобы наши flash для и второй (1200) на новую высоту. Мы также можем использовать проценты (например, 90%) вместо значения пикселей и оставим любую из 2 параметров пустой приведет только изменение размера одном измерении. Например присвоить ResizeFlash (", '1200 ') будет набор высоты flash 1200px, оставляя его ширину как она есть.
Так знаем, что необходимо вставить фактические функции javascript, которые буду делать трюк изменения размера DIV владельца. В самом конце нашего документа, непосредственно перед акрывающим тегом body :
<script>
function ResizeFlash(newWidth,newHeight){
if(newWidth){
$("#resized").css("width",newWidth);
}
if(newHeight){
$("#resized").css("height",newHeight);
}
}
</script>
Функция проверяет параметры ширины и высоты и есть они установлены то применяет новый CSS стиль для тега DIV.
[attachment=128:flash_resize_via_js.zip]