![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 29
|
Приветствую.
Недавно спрашивал на счет бегущей строки. Спасибо за помощь ![]() Теперь, во время разработки видеоплеера, у меня возникла еще одна проблема. Есть кнопка, отвечающая за full screen. Она работает, но. При переходе в полноэкранный режим, увеличиваются все элементы плеера. Как сделать так, чтобы объекты сохраняли свой первоначальный размер? Хелпер по AS3 не дал ответа. private function fullHandler():void { if(stage.displayState==StageDisplayState.FULL_SCREEN) { stage.displayState=StageDisplayState.NORMAL; }else { stage.displayState=StageDisplayState.FULL_SCREEN; } } Во вложение исходники. P.S Что касается последней проблемы с резиновастью. На мой взгляд, просить сделать это за спасибо нагло. Поэтому, если есть желающие помочь за символическую оплату, прошу в скайп xxpanzer_generalxx ![]() Нашел как сделать full screen который занимает все рабочее пространство. Но не соблюдаются пропорции |
|
|||||
|
Цитата:
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Отключаете автоматическое масштабирование как сказали выше, подписываетесь на событие Event.RESIZE от stage и при его наступлении пересчитываете положение и размеры всех элементов, опираясь на размеры окна отображения плеера (stage.stageWidth и stage.stageHeight). Это и называется "резиной".
Никакого магического сделатьВсёХорошо(); нет. Плеер не может угадывать, что и как Вам хочется растягивать и перемещать. Придется это описывать ручками.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 29
|
Можете показать наглядный пример с fullscreen?
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
package { import flash.display.Graphics; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageDisplayState; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Rectangle; public class Main extends Sprite { private var _topBar:Sprite; private var _statusBar:Sprite; private var _leftBar:Sprite; private var _rightBar:Sprite; private var _centerButton:Sprite; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; _topBar = coloredRect(0xAAAAAA, 20, 20, 10); super.addChild(_topBar); _statusBar = coloredRect(0xAAAAAA, 40, 40, 10); super.addChild(_statusBar); _leftBar = coloredRect(0xAAAAAA, 100, 40, 10); super.addChild(_leftBar); _rightBar = coloredRect(0xAAAAAA, 100, 40, 10); super.addChild(_rightBar); _centerButton = new Sprite(); _centerButton.graphics.beginFill(0xFF0000); _centerButton.graphics.drawCircle(0, 0, 100); super.addChild(_centerButton); _centerButton.addEventListener(MouseEvent.CLICK, handlerClick); redraw(); stage.addEventListener(Event.RESIZE, handlerResize); } private function handlerClick(e:MouseEvent):void { stage.displayState = stage.displayState == StageDisplayState.NORMAL ? StageDisplayState.FULL_SCREEN_INTERACTIVE : StageDisplayState.NORMAL; } private function handlerResize(event:Event):void { redraw(); } private function redraw():void { var w:Number = stage.stageWidth; var h:Number = stage.stageHeight; //// верхняя панель всегда вверху с отступом по 5 пикселей, растягивается по длине, сохраняя высоту _topBar.x = 5; _topBar.y = 5; _topBar.width = w - 10; //// нижняя панель всегда внизу с отступом по 5 пикселей, растягивается по длине, сохраняя высоту _statusBar.x = 5; _statusBar.y = h - 5 - _statusBar.height; _statusBar.width = w - 10; //// левая панель всегда слева с отступом 5 пикселей, сохраняет ширину, меняет высоту _leftBar.x = 5; _leftBar.y = _topBar.y + _topBar.height + 5; _leftBar.height = _statusBar.y -_leftBar.y - 5; //// правая панель всегда справа с отступом 5 пикселей, сохраняет ширину, меняет высоту _rightBar.x = w - _rightBar.width - 5; _rightBar.y = _topBar.y + _topBar.height + 5; _rightBar.height = _statusBar.y -_leftBar.y - 5; //// круглую кнопку будем держать в центре _centerButton.x = w / 2; _centerButton.y = h / 2; } private function coloredRect(color:uint, width:Number, height:Number, corner:Number):Sprite { var s:Sprite = new Sprite(); var g:Graphics = s.graphics; g.beginFill(color); g.drawRoundRect(0, 0, width, height, corner); s.scale9Grid = new Rectangle(10, 10, 2, 2); return s; } } }
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 29
|
Большое спасибо. Ушел разбираться.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 12:39. |
|
|
« Предыдущая тема | Следующая тема » |
|
|