![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 19
|
Здравствуйте.
AS3 1.Необходимо чтобы все графические элементы в флэш игре при изменении окна игры пропорционально масштибировались, т.е. максимальное разрешение у игры 800х600, надо чтобы при переразмере в 640х480 все графические элементы игры пропорционально уменьшились и вошли в игровое окно? 2.Как зафиксировать игровое окно в разрешении 800х600, чтобы игрок не смог сделать разрешение игры больше, чем указанное (а в меньшую строну, конечно можно)? |
|
|||||
|
приложение будет пропорционально вписываться в размеры плеера, при уменьшении и увеличении размеров.
Если нужен другой функционал и слушаете событие Event.RESIZE В обработчике масштабируйте как угодно. |
|
|||||
|
[+6 23.11.09]
|
Цитата:
package main { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; import flash.display.MovieClip; public class init extends MovieClip { public function init() { stage.addEventListener(Event.RESIZE, onRes); this.loaderInfo.addEventListener(Event.INIT, onRes); } function onRes(e:Event):void { //сёда пишешь свой мувик //каторый надо поставит, и правило как его двигать маштабировать и т.п. } } } |
|
|||||
|
Регистрация: Jul 2009
Адрес: Москва
Сообщений: 99
|
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.*; public class Main extends Sprite { private var proportion:Number=800./600.; public function Main() { super(); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener (Event.RESIZE, resizeHandler); } private function resizeHandler (event:Event):void { this.resize(); } private function resize():void { if (stage.stageWidth/stage.stageHeight>this.proportion) { this.height = stage.stageHeight; this.width = proportion*stage.stageHeight; this.x = stage.stageWidth/2 - this.width/2; this.y = 0; } else { this.width = stage.stageWidth; this.height = stage.stageWidth/this.proportion; this.x = 0; this.y = stage.stageHeight/2 - this.height/2; } } } } Последний раз редактировалось Dimax4d; 02.08.2009 в 21:26. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 19
|
Спасибо за примеры.
stage.scaleMode = StageScaleMode.NO_SCALE;- по сути это получается ручной режим, где в обработчике, мы сами задаем высоту и ширину клипа. stage.scaleMode = StageScaleMode.SHOW_ALL; - где лучше прописывать такие общие настройки - первом кадре, или в базовом классе или еще где? А по второму пункту, как заблокировать на 800х600, чтобы игрок не смог растянуть игру на большее разрешение? Последний раз редактировалось Рен; 02.08.2009 в 21:30. |
|
|||||
|
Регистрация: Jul 2009
Сообщений: 19
|
Забудьте про код в кадрах - все забыл)
Все получилось, всех благодарю. |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|