Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   HTML/DHTML/CSS/JS/VB (http://www.flasher.ru/forum/forumdisplay.php?f=66)
-   -   Флешка на всю ширину сайта, не масштабируемая при масштабировании страницы (http://www.flasher.ru/forum/showthread.php?t=148979)

Toxedo 17.01.2011 01:21

Флешка на всю ширину сайта, не масштабируемая при масштабировании страницы
 
Задача сделать чтоб флешка, при разных разрешениях экрана вписывалась на всю страничку по ширине. Для этого я в HTML делаю ей width=100%. Ширина самой флешки 1200. Пробую на разных мониторах, все нормально- флешка растягивается,сужается. Но при масштабировании страницы, флешка тоже масштабируется, что не нужно мне по задумке!
Если запрещать флешке масштабирование, те писать:

Код AS3:

stage.scaleMode = StageScaleMode.NO_SCALE;

то она не растягивается по ширине экрана.
Подскажите есть ли какое решение данной проблемы.

Zebestov 17.01.2011 05:56

Вопрос не в том разделе. В HTML все сделано верно. NO_SCALE тоже правильно.
Дальше работаем над расположением элементов с помощью Stage#stageWidth и Stage#stageHeight.

Toxedo 17.01.2011 19:33

Zebestov, понимаете, мне нужно чтобы флешка растягивалась в браузере на полную ширину, но сохраняла пропорции по высоте.
Stage#stageWidth и Stage#stageHeight это значения только для чтения же, а мне нужно растянуть всю флеш (можно с маштабированием элементов внутри)

Zebestov 17.01.2011 19:49

Цитата:

Задача сделать чтоб флешка, при разных разрешениях экрана вписывалась на всю страничку по ширине.
Цитата:

Но при масштабировании страницы, флешка тоже масштабируется, что не нужно мне по задумке!
"Хочу на всю ширину, но чтобы не растягивалось." — это вообще как? 0о

Добавлено через 2 минуты
Наугад: вместо NO_SCALE используй NO_BORDER

Toxedo 17.01.2011 20:30

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

Zebestov 17.01.2011 20:47

А как ты прописываешь высоту в HTML?
Просто при width=100%, height=100% и stage.scaleMode=StageScaleMode.SHOW_ALL все должно происходить именно так, как ты и хочешь.
С учетом такой путаницы тебе наверное лучше уже показать проблему.

Toxedo 17.01.2011 21:09

Сейчас вышлю ссылку на пример)

Добавлено через 25 минут
http://pavel-ocokin.narod.ru/ak3.html
Вот) Сама флешка серым цветом. Ширина 1000, высота 600.
Буквы начинаются и кончаются ровно по краям флешка. Тут загрузил с параметром NO_SCALE.

Это правильно. Эфект при сужении расширении окна именно такой о каком я говорил. Как видно флеш не растягивается по длинне, нужно чтобы флешка была от края до края по ширине браузера (тоесть в развернутом виде браузера). Высота как я и говорил должна сохранять пропорции. Ширина и Высота - но скейл - тоесть как загрузили, больше будет меняться.

Т.е. ЧТобы человек загрузил с расширением 800 на 600, ширина флешки стала 800 - высота соотвественно в пропорции тоже уменьшилась) 1200 на 720 - ширина 1200,высота увеличилась.
Вот такая штука...


хтмл:
Код:

<script type="text/javascript" src="swfobject.js"></script>

<script type="text/javascript">
swfobject.embedSWF("NOscale.swf", "flash1", "100%", "100%", "9", "/swf/expressInstall.swf");
</script>
 
<div id="flash1">
    <p>Flash Clocks, install adobe flash player</p>
    <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
</div>
</html>


<style type="text/css">
body {
margin: 0;
padding: 0;
}
</style>
</html>


Zebestov 17.01.2011 23:07

Выходит при ширине меньше 1000px флэшка должна вести себя как SHOW_ALL, а при ширине больше 1000px — как NO_BORDER. Но если я не ошибаюсь, событие Event.RESIZE внутри флэшки, по которому ты мог бы делать подобное переключение тебе не подойдет — согласно документации оно работает только при NO_SCALE.

Тогда доработаем javascript из этой темы и размещаем его в <head></head>:

Код:

<script language="javascript">
function getSWFHeight()
{
        var clientWidth = document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth;
        var clientHeight = document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight;

        var res;
                       
        if (clientWidth < 1000 || clientHeight / clientWidth > 0.6)
        {
                res = clientWidth * 0.6;
        } else {
                res = "100%";
        }
                       
        return res;
}

function fitSWF()
{
        var my = document.getElementById('flash1');
        my.height = getSWFHeight();
}
</script>

Чтобы сразу формировался правильный размер:
Код:

<script type="text/javascript">
        swfobject.embedSWF("NOscale.swf", "flash1", "100%", getSWFHeight(), "9", "/swf/expressInstall.swf");
</script>

И чтобы работало по ресайзу:

Код:

<body onresize="fitSWF()">
И наконец в самом мувике:
Код AS3:

stage.scaleMode = StageScaleMode.NO_BORDER;

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

Котяра 18.01.2011 00:53

оффтоп: а откуда мода пошла обозначать методы классов через Stage#stageHeight?
В справочнике # - это якорь :)

Zebestov 18.01.2011 00:57

оффтоп: а я знаю? )

gippokratka5577 12.02.2011 00:08

слушай,а у меня тоже проблема.
У меня не срабатывает на высоту.То есть если писать width="100%" height="400",то ширина разворачивается на полную как и должно быть,а высота на половину.И это правильно.
[b]Но когда я задаю так width="100%" height="100%" , то высота нехочет на всю работать хотя должна.Не знаешь в чем загвоздка?

Zebestov 15.02.2011 15:25

Какие размеры флэшки при публикации? Какой используешь stage.scaleMode?


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

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