包 | flash.display |
类 | public final class Screen |
继承 | Screen EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
屏幕是位于可能更大的“虚拟桌面”内的独立桌面区域。虚拟桌面的原点是操作系统指定的主屏幕的左上角。因此,个别显示屏幕范围的坐标可能是负数。虚拟桌面也可能有一些不在任何显示屏幕内的区域。
Screen 类包括用于访问可用屏幕对象的静态类成员和用于访问个别屏幕属性的实例成员。屏幕信息不应进行缓存,因为这些信息可能会由用户随时更改。
请注意,屏幕和连接到计算机的物理监视器之间不一定有一对一的对应关系。例如,两台监视器可以显示同一个屏幕。
无法直接实例化 Screen 类。调用 new Screen()
构造函数将引发 ArgumentError
异常。
属性 | 定义方 | ||
---|---|---|---|
bounds : Rectangle [只读 (read-only)] 此屏幕的范围。 | Screen | ||
colorDepth : int [只读 (read-only)] 此屏幕的颜色深度(以位数为单位)。 | Screen | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | ||
mainScreen : Screen [静态] [只读 (read-only)] 主显示器。 | Screen | ||
prototype : Object [静态]
对类或函数对象的原型对象的引用。 | Object | ||
screens : Array [静态] [只读 (read-only)] 当前可用的屏幕的数组。 | Screen | ||
visibleBounds : Rectangle [只读 (read-only)] 此屏幕上窗口可见区域的范围。 | 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 | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。 | EventDispatcher |
bounds | 属性 |
bounds:Rectangle
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
此屏幕的范围。
屏幕位置相对于虚拟桌面。
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
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
此屏幕的颜色深度(以位数为单位)。
public function get colorDepth():int
var mainScreen:Screen = Screen.mainScreen; var colors:uint = mainScreen.colorDepth;
mainScreen | 属性 |
mainScreen:Screen
[只读 (read-only)] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
主显示器。
public static function get mainScreen():Screen
var primaryScreen:Screen = Screen.mainScreen;
screens | 属性 |
screens:Array
[只读 (read-only)] 语言版本: | ActionScript 3. |
运行时版本: | AIR 1.0 |
当前可用的屏幕的数组。
修改返回的数组对可用的屏幕没有任何效果。
public static function get screens():Array
var screenArray:Array = Screen.screens;
visibleBounds | 属性 |
visibleBounds:Rectangle
[只读 (read-only)] 语言版本: | 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 对象。
请注意,此类旨在用作具有 SystemChrome="none"
和 transparent="true"
设置的 AIR 应用程序的根类。要在具有系统镶边的窗口中使用此类,在计算窗口位置和大小时,必须将镶边的粗细和窗口的最小宽度考虑在内。
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(); } } } }