Форум 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)
-   -   Ручное позиционирование и маштабирование (http://www.flasher.ru/forum/showthread.php?t=65693)

DrZubr 16.06.2005 21:10

Ручное позиционирование и маштабирование
 
еще один вопросик возник.
задам его сюда чтобы не плодить ветки.

при создании флешки в ее свойствах задается ширина, высота. допустим я вывел текст 16 шрифтом. а теперь допустим я гружу эту же флешку, но указываю ей уже совершенно другие размеры. соответственно меняются и шрифты, а хотелось бы чтобы шрифты были такого же размера (это корректно так как контент флешки генериться динамически). как такого можно добиться?

Nirth 16.06.2005 22:16

ммм вообще легкого пути я не вижу, ибо в твоем случае все будет либо маштабироваться пропорционально, либо не будет маштабироваться вовсе.
Есть выход, но он требует определенной сноровки, и тщательного разбиения сайта на состовляющие.
примерный способ.

у тебя есть на сайте 3 элемента: меню, шапка и текстовой блок.
Сначала мы пишем
Код:

Stage.scaleMode = "noScale";
этим мы отрубили авто маштабирование, теперь мы будем делать его в ручную, для этого данные три эллемента мы расположим в отдельные мувиклипы, element1,element2,element3.
Через свойства класса Stage мы можем узнать размеры флэшки, после чего расчитываем пропорции, после чего мы увеличиваем размеры двух эллементов(_width,_height) а текстовый блок оставляем таким же, либо "перерисовываем".

Так же можешь посмотреть класс Elastic(Тебе нужно будет скачать весь пакет классов и там найдешь, класс и примеры) Евгения Потапенко, или класс Table Игоря Агеева.

DrZubr 19.06.2005 14:31

еще вопрос
 
Вот возник еще вопросик. Суть: узнать реальный размер шлешки в IE после установки Stage.scaleMode = "noScale" (то есть именно те размеры, которые указаны в html'е).

Простой пример: создаем пустую флешку 200x300, пишем скрипт:
_root.createTextField("sz1", 1, 0, 0, 100, 100);
sz1.text = Stage.width + " x " + Stage.height;
Stage.align = "TL";
Stage.scaleMode = "noScale";
_root.createTextField("sz2", 2, 0, 50, 100, 100);
sz2.text = Stage.width + " x " + Stage.height;

Встраиваем на html-страничку:
<html>
<body>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"
WIDTH="150" HEIGHT="350" id="myMovieName">
<PARAM NAME=movie VALUE="test.swf">
<PARAM NAME=quality VALUE=high>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="test.swf" quality=high bgcolor=#FFFFFF WIDTH="150" HEIGHT="350"
NAME="myMovieName" ALIGN="" TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>
</body>
</html>

В итоге в Опере и Фаерфоксе все выводится как и должно быть (200 x 300 и 150 x 350), а в IE выводится 200 x 300 и 0 x 0 :eek:

DrZubr 19.06.2005 14:55

Оказывается известная проблема :)
Нашел workaround здесь.

Nirth 19.06.2005 15:06

спасибо за ответ=)


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

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