Пакет | flash.display |
Класс | public final class Screen |
Наследование | Screen EventDispatcher Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Экраны — это независимые области рабочего стола внутри одного, возможно, большего по размеру «виртуального рабочего стола». Исходная точка виртуального рабочего стола находится в верхнем левом углу главного экрана операционной системы. Таким образом, координаты границ отдельного экрана дисплея могут быть отрицательными. Также могут быть области виртуального рабочего стола, не входящие ни в один экран отображения.
Класс Screen, содержит статические элементы класса для обращения к доступным экранным объектам и элементы экземпляров для обращения к свойствам отдельных экранов. Информацию об экранах не следует сохранять в кэше, так как пользователь может в любой момент ее изменить.
Обратите внимание, что между экранами и физическими мониторами, подключенными к компьютеру, не обязательно должно быть соотношение один к одному. Например, два монитора могут показывать один и тот же экран.
Нельзя создать экземпляры класса Screen напрямую. Вызовы конструктора new Screen()
выдают исключение ArgumentError
.
Свойство | Определено | ||
---|---|---|---|
bounds : Rectangle [только для чтения]
Границы данного экрана. | Screen | ||
colorDepth : int [только для чтения]
Глубина цвета (выраженная количеством битов). | Screen | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
mainScreen : Screen [статические] [только для чтения]
Главный дисплей. | Screen | ||
mode : ScreenMode
Текущий режим экрана объекта Screen. | Screen | ||
modes : Array [только для чтения]
Массив объектов ScreenMode объекта Screen. | Screen | ||
screens : Array [статические] [только для чтения]
Массив доступных на данный момент экранов. | Screen | ||
visibleBounds : Rectangle [только для чтения]
Границы области на данном экране, в которой будут отображаться окна. | Screen |
Метод | Определено | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Регистрирует объект прослушивателя события на объекте EventDispatcher для получения прослушивателем уведомления о событии. | EventDispatcher | ||
Посылает событие в поток событий. | EventDispatcher | ||
[статические]
Возвращает набор экранов (возможно, пустой), пересекающих данный прямоугольник. | Screen | ||
Проверяет, имеет ли объект EventDispatcher прослушиватели, зарегистрированные для определенного типа события. | EventDispatcher | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Удаляет прослушиватель из объекта EventDispatcher. | EventDispatcher | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | Object | ||
Проверяет, зарегистрирован ли прослушиватель события для указанного типа события с данным объектом EventDispatcher или любым его предшественником. | EventDispatcher |
bounds | свойство |
bounds:Rectangle
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Границы данного экрана.
Местоположение экрана определяется относительно виртуального рабочего стола
В системах Linux, использующих менеджеры окон, это свойство возвращает границы рабочего стала, а не видимые границы экрана.
Реализация
public function get bounds():Rectangle
Пример ( Использование этого примера )
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.bounds;
colorDepth | свойство |
colorDepth:int
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Глубина цвета (выраженная количеством битов).
Реализация
public function get colorDepth():int
Пример ( Использование этого примера )
var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth;
mainScreen | свойство |
mainScreen:Screen
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Главный дисплей.
Реализация
public static function get mainScreen():Screen
Пример ( Использование этого примера )
var primaryScreen:Screen = Screen.mainScreen;
mode | свойство |
mode:ScreenMode
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 29.0 |
Текущий режим экрана объекта Screen. Свойство mode
указывает текущий режим экрана определенного устройства Screen.
Реализация
public function get mode():ScreenMode
public function set mode(value:ScreenMode):void
modes | свойство |
screens | свойство |
screens:Array
[только для чтения] Язык версии: | ActionScript 3. |
Версии среды выполнения: | AIR 1.0 |
Массив доступных на данный момент экранов.
Модификация возвращенного массива не будет оказывать влияния на доступные экраны.
Реализация
public static function get screens():Array
Пример ( Использование этого примера )
var screenArray:Array = Screen.screens;
visibleBounds | свойство |
visibleBounds:Rectangle
[только для чтения] Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Границы области на данном экране, в которой будут отображаться окна.
В границы visibleBounds
не входит панель задач (и другие панели рабочего стола) Windows, строка меню и, в зависимости от системных настроек, док в Mac OS X. В некоторых конфигурациях Linux видимые границы определить невозможно. В таких случаях свойство visibleBounds
возвращает то же самое значение, что и свойство screenBounds
.
Реализация
public function get visibleBounds():Rectangle
Пример ( Использование этого примера )
import flash.display.Screen; import flash.geom.Rectangle; var mainScreen:Screen = Screen.mainScreen; var screenBounds:Rectangle = mainScreen.visibleBounds;
getScreensForRectangle | () | метод |
public static function getScreensForRectangle(rect:Rectangle):Array
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Возвращает набор экранов (возможно, пустой), пересекающих данный прямоугольник.
Параметры
rect:Rectangle — Прямоугольник с координатами относительно исходной точки виртуального рабочего стола, которая находится в верхнем левом углу главного экрана.
|
Array — Массив объектов Screen с экранами, содержащими любую часть области, определенной параметром rect .
|
Пример ( Использование этого примера )
import flash.display.Screen; import flash.geom.Rectangle; var rect:Rectangle = new Rectangle(-200, 100, 1000, 600); var intersectedScreens:Array = Screen.getScreensForRectangle(rect);
- Ответить на события клавиатуры, чтобы определить край экрана, к которому прикрепить окно.
- Обратиться к методу
getScreensForRectangle()
статического класса Screen, чтобы получить объект Screen для экрана, на котором в данный момент отображается окно. - Изменить настройки границ окна в соответствии с размерами экрана.
- Обновить содержимое окна в соответствии с его новыми размерами.
Обратите внимание на то, что этот класс следует использовать как корневой класс приложения AIR с настройками SystemChrome="none"
и transparent="true"
. Для использования этого класса в окне с системным Chrome необходимо учитывать толщину Chrome и минимальную ширину окна при вычислении расположения и размера окна.
package { import flash.display.Screen; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.KeyboardEvent; import flash.geom.Rectangle; import flash.ui.Keyboard; public class DockingWindow extends Sprite { private const dockedWidth:uint = 80; private const dockedHeight:uint = 80; public function DockingWindow():void{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); dockLeft(); } private function onKey(event:KeyboardEvent):void{ switch(event.keyCode){ case Keyboard.LEFT : dockLeft(); break; case Keyboard.RIGHT : dockRight(); break; case Keyboard.UP : dockTop(); break; case Keyboard.DOWN : dockBottom(); break; case Keyboard.SPACE : stage.nativeWindow.close(); } } public function dockLeft():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.height = screen.visibleBounds.height; stage.stageWidth = dockedWidth; drawContent(); } public function dockRight():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.width - dockedWidth; stage.nativeWindow.y = screen.visibleBounds.top; stage.stageWidth = dockedWidth; stage.nativeWindow.height = screen.visibleBounds.height; drawContent(); } public function dockTop():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.top; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } public function dockBottom():void{ var screen:Screen = getCurrentScreen(); stage.nativeWindow.x = screen.visibleBounds.left; stage.nativeWindow.y = screen.visibleBounds.height - dockedHeight; stage.nativeWindow.width = screen.visibleBounds.width; stage.stageHeight = dockedHeight; drawContent(); } private function getCurrentScreen():Screen{ return Screen.getScreensForRectangle(stage.nativeWindow.bounds)[0]; } private function drawContent():void{ const size:int = 60; const pad:int = 10; var numHSquares:int = Math.floor(stage.stageWidth/(size + pad)); var numVSquares:int = Math.floor(stage.stageHeight/(size + pad)); with (graphics){ clear(); lineStyle(1); beginFill(0x3462d5,.7); for(var i:int = 0; i < numHSquares; i++){ for(var j:int = 0; j < numVSquares; j++){ drawRect((i * (size + pad)) + pad, (j * (size + pad)) + pad, size, size); } } endFill(); } } } }
Tue Jun 12 2018, 11:34 AM Z