Screen 类提供此应用程序的可用显示屏幕的相关信息。

屏幕是位于可能更大的“虚拟桌面”内的独立桌面区域。虚拟桌面的原点是操作系统指定的主屏幕的左上角。因此,个别显示屏幕范围的坐标可能是负数。虚拟桌面也可能有一些不在任何显示屏幕内的区域。

Screen 类包括用于访问可用屏幕对象的静态类成员和用于访问个别屏幕属性的实例成员。屏幕信息不应进行缓存,因为这些信息可能会由用户随时更改。

请注意,屏幕和连接到计算机的物理监视器之间不一定有一对一的对应关系。例如,两台监视器可以显示同一个屏幕。

无法直接实例化 Screen 类。调用 new Screen() 构造函数将引发 ArgumentError 异常。

下面的示例通过定义 DockingWindow 类来创建一个停靠在屏幕某一侧的窗口。执行下列步骤可完成该任务:

  1. 响应键盘事件以确定停靠在屏幕的哪一侧。
  2. 访问静态 Screen 类方法 getScreensForRectangle() 可以获取当前显示该窗口的屏幕的 Screen 对象。
  3. 根据屏幕尺寸重新设置窗口范围。
  4. 根据新窗口尺寸重新绘制窗口内容。

请注意,此类旨在用作具有 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();
}
}
}
}

[AIR] Screen 的应用的更多相关文章

  1. iOS Hardware Guide

    来自U3D文档 Hardware models The following list summarizes iOS hardware available in devices of various g ...

  2. Notes on how to use Webots, especially how to make a robot fly in the air

    How to create a new project Wizard - New project directory   Scene Tree Scene tree is a representati ...

  3. [AIR] 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持

    转自:http://www.adobe.com/cn/devnet/air/articles/multiple-screen-sizes.html 无论是改编原本在浏览器 Flash Player 中 ...

  4. air ios 输入遮挡问题

    <!-- Adobe AIR Application Descriptor File Template. Specifies parameters for identifying, instal ...

  5. ios 2017启动页(Launch Screen Images)、图标(App Icon)尺寸大小

    ios 2017启动页(Launch Screen Images).图标(App Icon)尺寸大小   iPhone Portrait iOS 8,9-Retina HD 5.5 (1242×220 ...

  6. 断电不断网——Linux的screen

    title: 断电不断网--Linux的screen author:青南 date: 2015-01-01 20:20:23 categories: [Linux] tags: [linux,scre ...

  7. screen命令

    基本用法 screen -S testname 在这里面执行命令,即使终端突出,进程也不会断掉 screen -list查看有哪些screen screen -r testname 恢复

  8. SSH远程会话管理工具 - screen使用教程

    一.screen命令是什么? Screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器.Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个s ...

  9. 解决adobe air sdk打包 apk后自动在包名前面加上air. (有个点)前缀的问题

    早就找到了这个方法,但是一直忙没心思写博客. 默认情况下,所有 AIR Android 应用程序的包名称都带 air 前缀.若不想使用此默认行为,可将计算机环境变量 AIR_NOANDROIDFLAI ...

随机推荐

  1. Android拍照、录像、录音代码范例

    <p>import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import andro ...

  2. hadoop spark学习笔记

    http://www.csdn.net/article/2015-06-08/2824889 hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sq ...

  3. Android 隐藏Fragment

    1.隐藏Fragment FragmentManager fManager = getFragmentManager(); fManager.beginTransaction() .setCustom ...

  4. c#(winform)中ComboBox添加Key/Value项、获取选中项、根据Key

    WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它的. 参考了一些网上的例子,最终写了一个辅助类用于方便对 ...

  5. PXE-无人值守安装

    [root@rhel6 ~]# cp /root/ks.cfg /var/ftp/ks.cfg [root@rhel6 ~]# cat ks.cfg #platform=x86, AMD64, 或 I ...

  6. ios外包公司——技术分享:IOS开发教程

        iOS入门培训,适合已经有C/C++/Java/C#基础的人学习.   本大仙主讲,总共4讲(第4讲尚在制作中),这仅仅是iOS开发的入门而已.学完本教程,应该已经足够你自学并开发app了. ...

  7. HackerRank "AND xor OR"

    Actually I think problem statement is somewhat misleading. No need to mention range [L, R] at all. T ...

  8. (转)ORACLE触发器详解

    本文转载自:http://blog.csdn.net/indexman/article/details/8023740/ ORACLE PL/SQL编程之八: 把触发器说透 本篇主要内容如下: 8.1 ...

  9. 【PDF】java使用Itext生成pdf文档--详解

    [API接口]  一.Itext简介 API地址:javadoc/index.html:如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/ ...

  10. 读书笔记:Ross:概率模型导论:方差和协方差

    例2.34 考虑N个人,一些人赞同某个提议,另一些人反对.假定Np个人赞同,N-Np人反对,p未知.现在想要通过随机选取n个人调查他们的态度,并由此来估计总体中赞同这个提议的人员比例p. 设Xi=1表 ...