Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   можно ли изменять программно габариты ролика? (http://www.flasher.ru/forum/showthread.php?t=181673)

viktorami 29.06.2012 13:54

можно ли изменять программно габариты ролика?
 
что то вроде изменения параметров stage?
собственно вот в чем проблема: есть флэш сайт определенных размеров. если на сайте html текст не влазит в высоту экрана - появляется полоса прокрутки. а как эту проблему решить в as3? как вариант можно было бы увеличить высоту всего ролика или как это делается?

illuzor 29.06.2012 14:01

Размер контейнера можно менять только извне.
Как вариант - вызываем через ExternalInterface js функцию, которая меняет размер контейнера.

Hauts 29.06.2012 14:01

Все от конкретного случая зависит. Вы можете показывать полосу прокрутки, а можете и просто масштабировать, с помощью scale или width/height.

Aquahawk 29.06.2012 14:04

скейлмод стейджа в none, алигн как удобно, обычно наверх налево, и потом через externalInterface при помощи js тянем свой контейнер. Если externalInterface запрещён то никак. Вот недавно совсем пост на эту тему видел http://edapskov.ru/pages.php?id=224

viktorami 29.06.2012 14:07

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

Aquahawk 29.06.2012 14:11

что в этом сложного то? Это раз.

Во вторых
Цитата:

сайте html текст не влазит в высоту экрана
это не нужно решать as3.

Wolsh 29.06.2012 14:22

Я тоже сам вопрос не понял.
"html текст" — это текст на html-странице, то есть не в ролике swf? При чем тут тогда AS3 и вообще...
Если надо динамически подправлять лейаут страницы так, чтобы весь контент умещался в одном экране (т.е. без прокруток), это в любом случае надо решать джаваскриптами. Тогда "окно" с роликом, то есть содержащий его DIV масштабируется джаваскриптом до нужных остальной странице размеров. А как уж реагирует сам ролик на изменение его размеров, решается обычной "резиной" по событию от Stage — Event.RESIZE.

Добавлено через 7 минут
В любом случае сама флэшка не знает ничего о странице, о браузере и прочих вещах, не имеющих отношения к ней лично. Это все параметры для html-страницы, ей с ними и разбираться. В том числе с размером div'а для ролика. Сам ролик в любом случае не обладает данными для принятия решения о ресайзе. Если бы он занимался такими решениями, то надо было бы: вычислить на странице новые размеры для ролика; передать эти размеры ролику через ExternalInterface; ролик должен был бы вызвать через ExternalInterface функцию джваскрипта на странице, изменяющую размер div'а. Сам собой встает вопрос — а нафига в этой цепочке ролик? Надо просто вычислить размеры div'a и применить их. Скриптом на странице.

viktorami 29.06.2012 14:30

ну вот у меня на флэше сайт. на одной страничке текста мало(внутри флэша) пользователь перешел на другую страничу(внутри флэша) текста - много. если бы ТАКОЕ случилось в html - браузер бы стал сколлировать весь контекнт. как в таком случае поступают если весь сайт на флэш?

Wolsh 29.06.2012 14:33

Делают скроллер для текста, например..

viktorami 29.06.2012 14:52

то есть технология флэш не приветствует изменение самого фрейма флэш.

in4core 29.06.2012 16:29

Цитата:

то есть технология флэш не приветствует изменение самого фрейма флэш.
Цитата:

Делают скроллер для текста, например..
Вам ответили

Wolsh 29.06.2012 16:33

"сам фрейм флэш" является кирпичиком страницы, ее чайлдом. Естественно, его размер определяет Страница. Если каждая фотография на странице будет сама решать, какого размера ей быть, Вы поставите себе другой браузер.

PainKiller 03.10.2012 16:40

Честно говоря прочитал эту тему и здорово удивился что никто здесь не практикует такой способ вставки флешки в браузер, при котором она скроллится браузером. Лично я так попробовал - с помощью JS (а точнее JQuery для кроссбраузерности) пишу функцию, которая меняет высоту дива в который вставлена флешка (или SWFObject), вызываю её через ExternalInterface и передаю ей из флешки размер страницы, которую надо отобразить в хтмл. Соответственно флешка целиком отображается в браузере и скроллится с его помощью. Единственная проблема с которой я столкнулся -флешка у меня резиновая, и при открытии её в браузере центровка объектов смещается (хотя их координаты трейсятся правильные) т.е. хтмл растягивает флешку. При ресайзе браузера все расставляется правильно. Но спрашивать здесь почему это происходит, я вижу бессмысленно.

Aquahawk 03.10.2012 17:18

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

PainKiller 04.10.2012 12:26

для несильно навороченных сайтов это работает отлично


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

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