Форум 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=201789)

art_maestro 22.06.2013 00:01

Растянуть мувик на весь экран
 
Здравствуйте

Делаю приложения для контакта. Необходимо чтобы данное приложение работало как 800 х 600 так и разворачивалось на весь экран. У меня широкоформатний монитор (15,6 дюймовый) , подскажите, как правильно растянуть мувик на весь экран. На Мониторе 1024 х 768 - все классно, на широкоформатных ерунда.

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

viewPort - мувик с изображением

Код AS3:

public function onMonitorResize(e:MouseEvent):void
                {                       
 
 
                        var picHeight = new Object ();
                                picHeight = Capabilities.screenResolutionY / Capabilities.screenResolutionX;
                        var picWidth = new Object ();
                                picWidth = Capabilities.screenResolutionX /Capabilities.screenResolutionY;
 
                        if (stage.displayState == StageDisplayState.NORMAL)
                                  {
                                          stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
 
 
                                        if ((stage.height / stage.width) < picHeight) {
                                                        viewPort.width = Capabilities.screenResolutionX;
                                                        viewPort.height = picHeight * viewPort.width;
 
                                        } else {
                                                        viewPort.height = Capabilities.screenResolutionY;
                                                        viewPort.width = picWidth * viewPort.height;
                                                        viewPort.width(Capabilities.screenResolutionX-viewPort.width)+viewPort.width;
                                                        viewPort.height = viewPort.height + (Capabilities.screenResolutionX-viewPort.width);
                                                        }                                       
 
                                  }
                        else
                                  {
                                          stage.displayState = StageDisplayState.NORMAL;
                                        viewPort.width = 800;
                                        viewPort.height = 600;
                                  }
}


KumoKairo 22.06.2013 08:00

Сделайте переменную ratio которая будет хранить отношение сторон, например для 800 на 600 это ~1.33. И считайте высоту по ширине умноженной на ratio, или наоборот,
Код AS3:

private const RATIO:Number = 800 / 600;
public function onMonitorResize(e:MouseEvent):void
                {                       
                        if (stage.displayState == StageDisplayState.NORMAL)
                                  {
                                          stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
 
                                        viewPort.height = Capabilities.screenResolutionY;
                                        viewPort.width = viewPort.height * RATIO;                       
                                  }
                        else
                                  {
                                          stage.displayState = StageDisplayState.NORMAL;
                                        viewPort.width = 800;
                                        viewPort.height = 600;
                                  }
}

Как то так. Возможно еще придется отцентровывать на экране, но это делается простым
Код AS3:

viewPort.x = Capabilities.screenResolutionX - viewPort.width / 2;

или если есть ссылка на stage, то привычней stage использовать
Код AS3:

viewPort.x = stage.stageWidth - viewPort.width / 2;


art_maestro 22.06.2013 15:14

Огромное спасибо, попробую!

Добавлено через 1 час 2 минуты
К сожалению не получилось растянуть мувик на 15,6 дюймовый монитор. много пустого пространства от границы изображения до конца монитора.

Добавлено через 44 часа 50 минут
решил проблему так

Код AS3:

var newWidth:Number = this.stage.stageWidth;
var newHeight:Number = this.stage.stageHeight;
clip.scaleX = newWidth/clip.width;
clip.scaleY = clip.scaleX;



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

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