Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Изменение размера флэшки на HTML странице (http://www.flasher.ru/forum/showthread.php?t=72324)

Muchacho 24.11.2005 14:20

Изменение размера флэшки на HTML странице
 
Возникла такая надобность: если содержимое мувика не вмещается в окне flash-плеера, размер плеера на HTML странице должен динамически увеличиться. Я попробовал сделать это JavaScript'ом, как делал бы это для любого другого объекта, например, картинки, но с swf'кой это не прокатывает.

Вот пример JavaScript'а на странице:
Код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<script language="JavaScript">
        function some(obj){
                document[obj].height = 22;
        }
</script>
</head>

<body onLoad="some('fl')">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" name="fl" width="120" height="200" id="fl">
  <param name="movie" value="square.swf">
  <param name="quality" value="high">
  <embed src="square.swf" width="120" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="fl"></embed>
</object>
</body>
</html>


A.SSpike 24.11.2005 15:30

Все просто. В первом кадре прописываешь код:
Stage.align = "BL";
Stage.scaleMode = "noScale";
var res:Object = new Object ();

res.onResize = function () {
//тут прописываешь что будет происходить при изменении размера, например
_root.fon._width = Stage.width;

};
Stage.addListener(res);

Muchacho 24.11.2005 16:45

A.SSpike, скопировал и вклеил твой код в первый кадр, и... ничего не меняется :(

Проблема в том, что я не могу изменить при помощи JavaScript размер самого flash-плеера, внедрённого в страницу.

Muchacho 24.11.2005 16:54

JavaScript вообще "не видит" значения height для внедрённой флэшки.
Я попробовал изменить код таким образом:
alert(document[obj].height);
И в сообщении выводится "undefined"

Muchacho 24.11.2005 16:59

Сорри, я не сказал, что тестирую в Опере. Сейчас открыл Эксплорером, и там скрипт работает корректно. Но ситуевина такова, что заказчик сайта заядлый линуксоид, и пользуется Оперой. Да и вообще, Опера у них в канторе на половине компов.

В общем, реально ли менять размер Flash-плеера не в Эксплорере?

A.SSpike 24.11.2005 17:12

Вообще это достаточно странно. Код то ведь флэшовый, в данном случае от браузера ничего не зависит.
А ты тестируешь со своим java-кодом в хтмлке? попробуй выкини его нафиг.

Muchacho 24.11.2005 17:45

A.SSpike, то, что касается изменения размеров объекта, расположенного на странице, путем JavaScript, касается именно браузера. Тот код, который ты привел, касается только реакции содержимого клипа на изменение размеров плеера, а мне нужно как раз размеры плеера менять. Но вообще, я разобрался! :)

Поместил клип в ячейку таблицы. Задал клипу размеры в 100% (а не в пикселях), что б он заполнил собой всю ячейку. А затем меняю размер ячейки из JavaScript (ячейке для этого, конечно, должен быть присвоен id)

Код:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
<script language="JavaScript">
        function some(obj){
                document.getElementById(obj).height = 336;
        }
</script>
</head>

<body onLoad="some('myCell')">
<table width="100%" height="100%" border="1" cellpadding="0" cellspacing="0">
  <tr>
    <td width="30" height="30">&nbsp;</td>
    <td height="30">&nbsp;</td>
    <td height="30">&nbsp;</td>
  </tr>
  <tr>
    <td width="276" height="30" align="center" valign="middle" id="myCell"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="100%" height="100%">
      <param name="movie" value="square.swf">
      <param name="quality" value="high">
      <embed src="square.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100%" height="100%"></embed>
    </object></td>
    <td height="30">&nbsp;</td>
    <td height="30">&nbsp;</td>
  </tr>
  <tr>
    <td width="30">&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>


A.SSpike 24.11.2005 18:04

Я не правильно понял задачу. Посмотри вот сюда www.rusal.ru. Шапка - флеш. Я думал что тебе именно это надо.


Часовой пояс GMT +4, время: 23:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.