AS3: получить размер окна браузера? - PullRequest
2 голосов
/ 16 мая 2011

Можно ли получить размер окна браузера в AS3?

Лучший метод, который я нашел, - это получить размер с помощью Javascript и отправить его во Flash как FlashVar.Одним из ограничений этого метода является то, что он не дает текущий размер при изменении размера окна.

Есть ли способ сделать это в чистом Flash?

Ответы [ 2 ]

6 голосов
/ 16 мая 2011

Если вы встраиваете свой SWF с height: 100%; width:100%, вы можете использовать stage.stageWidth и stage.stageHeight. Если это не так, вы можете реализовать связь с JavaScript, используя ExternalInterface.

3 голосов
/ 16 мая 2011

Это зависит от того, пытаетесь ли вы установить SWF в полноэкранный режим или просто получить размеры окна для какой-либо другой цели.

Если вы работаете в полноэкранном режиме, вам нужно установить для stageScaleMode значение NO_SCALE и встроить ваш flash-объект в элемент div, для которого параметры высоты и ширины установлены на 100%. Чтобы справиться с изменением размера, вашему флеш-проекту требуется прослушиватель события изменения размера (примененный к сцене), и все экранные объекты должны реагировать на этого прослушивателя изменения размера. Как только ваш SWF изменяет размеры должным образом, вы можете, как уже отмечалось, использовать stage.stageHeight / stageWidth для извлечения точных размеров внутри.

Если, с другой стороны, вы просто хотите получить размеры окна, вам нужно будет использовать ExternalInterface для вызова javascript. В jQuery есть несколько хороших инструментов для быстрого получения размеров экрана. Тогда это просто вопрос отправки этих данных во флэш-память. Помните, что в javascript также есть событие изменения размера, и вы можете использовать его для принудительного изменения состояния во флэш-памяти.

Вы правы в начальном фрагменте последовательности - отправляете flashvars при загрузке, но чтобы реагировать на изменения размера экрана, вам необходимо применить один из этих методов.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...