包 | 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 [只读]
Screen 对象的各 ScreenMode 对象的数组。 | 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 | 属性 |
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 | 属性 |
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);
- 响应键盘事件以确定停靠在屏幕的哪一侧。
- 访问静态 Screen 类方法
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(); } } } }
Tue Jun 12 2018, 11:04 AM Z