`
lixinye0123
  • 浏览: 329964 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

10.6 屏幕

阅读更多

屏幕

根据AIR screen API可以获得系统桌面显示屏幕的信息。

屏幕简介

 screen API包含一个简单类,Screen,获得系统屏幕信息和屏幕的详细描述。

计算机系统可能有多个监视器或显示设备,这样对应的多个桌面屏幕排列在虚拟空间上。AIR Screen类提供了关于屏幕信息,如果有多个监视器映射到同一个屏幕上,那只有一个屏幕可显示,如果屏幕的尺寸大于监视器显示范围,没有办法确定是哪一部分处于可视状态。

一个屏幕表示一个独立的桌面显示区域,被描述为虚拟桌面的一个矩形区域,屏幕左上角为初始坐标,单位为像素。

 

上面的屏幕排列中,虚拟桌面上有两个屏幕,主屏幕(#1)的左上角坐标总是(0,0),如果屏幕排列设置屏幕#2作为主屏幕,则屏幕#1的坐标将为负坐标,一般指屏幕的可使用边界不包括菜单栏,任务栏。

枚举屏幕

通过下列屏幕方法和属性枚举虚拟桌面上的屏幕:

Screen.screens 

数组对象,表示可用的屏幕,注意数组的元素顺序不是有效的

Screen.mainScreen 

表示代表主屏幕的屏幕对象,在Mac OS X系统中,主屏幕为显示菜单栏的所在屏幕,在Windows中为系统指定的主屏幕。

Screen.getScreensForRectangle() 

通过指定的区域获得屏幕对象数组,该矩形区域作为参数传递给该方法,如果没有屏幕在范围内则返回空数组。

示例:在屏幕中移动窗体

 

这个例子使用screen API通过方向键在多个屏幕中移动窗体。

package ...

    
import flash.display.Sprite; 

    
import flash.display.Screen; 

    
import flash.events.KeyboardEvent; 

    
import flash.ui.Keyboard; 

    
import flash.display.StageAlign; 

    
import flash.display.StageScaleMode; 

     

    
public class ScreenExample extends Sprite 

    
...

        
public function ScreenExample() 

        
...

                stage.align 
= StageAlign.TOP_LEFT; 

                stage.scaleMode 
= StageScaleMode.NO_SCALE; 

                stage.addEventListener(KeyboardEvent.KEY_DOWN,onKey); 

        }
 

     

        
private function onKey(event:KeyboardEvent):void...

            
if(Screen.screens.length > 1)...

                
switch(event.keyCode)...

                    
case Keyboard.LEFT : 

                        moveLeft(); 

                        
break

                    
case Keyboard.RIGHT : 

                        moveRight(); 

                        
break

                    
case Keyboard.UP : 

                        moveUp(); 

                        
break

                    
case Keyboard.DOWN : 

                        moveDown(); 

                        
break

                }
     

            }
 

        }
     

                 

        
private function moveLeft():void...

            var currentScreen 
= getCurrentScreen(); 

            var left:Array 
= Screen.screens; 

            left.sort(sortHorizontal); 

            
for(var i:int = 0; i < left.length - 1; i++)...

                
if(left[i].bounds.left < stage.nativeWindow.bounds.left)...

                    stage.nativeWindow.x 
+=  

                        left[i].bounds.left 
- currentScreen.bounds.left; 

                    stage.nativeWindow.y 
+= left[i].bounds.top - currentScreen.bounds.top; 

                }
 

            }
  

        }
 

         

        
private function moveRight():void...

            var currentScreen:Screen 
= getCurrentScreen(); 

            var left:Array 
= Screen.screens; 

            left.sort(sortHorizontal); 

            
for(var i:int = left.length - 1; i > 0; i--)...

                
if(left[i].bounds.left > stage.nativeWindow.bounds.left)...

                    stage.nativeWindow.x 
+=  

                        left[i].bounds.left 
- currentScreen.bounds.left; 

                    stage.nativeWindow.y 
+= left[i].bounds.top - currentScreen.bounds.top; 

                }
 

            }
  

        }
 

 

        
private function moveUp():void...

            var currentScreen:Screen 
= getCurrentScreen(); 

            var top:Array 
= Screen.screens; 

            top.sort(sortVertical); 

            
for(var i:int = 0; i < top.length - 1; i++)...

                
if(top[i].bounds.top < stage.nativeWindow.bounds.top)...

                    stage.nativeWindow.x 
+= top[i].bounds.left - currentScreen.bounds.left; 

                    stage.nativeWindow.y 
+= top[i].bounds.top - currentScreen.bounds.top; 

                    
break

                }
 

            }
  

        }
 

 

        
private function moveDown():void...

            var currentScreen:Screen 
= getCurrentScreen(); 

             

            var top:Array 
= Screen.screens; 

            top.sort(sortVertical); 

            
for(var i:int = top.length - 1; i > 0; i--)...

                
if(top[i].bounds.top > stage.nativeWindow.bounds.top)...

                    stage.nativeWindow.x 
+= top[i].bounds.left - currentScreen.bounds.left; 

                    stage.nativeWindow.y 
+= top[i].bounds.top - currentScreen.bounds.top; 

                    
break

                }
 

            }
  

        }
 

         

_36
分享到:
评论

相关推荐

    苹果水波纹屏保 雪豹10.6.7下通过测试

    同时,考虑到描述中提到的“雪豹”(Snow Leopard)即Mac OS X 10.6,说明此屏保至少兼容到这个系统,用户需要确保自己的系统版本符合要求。 2. **屏幕保护程序**:屏幕保护程序是一种特殊的应用程序,当用户在一段...

    SQL Prompt 10.6.4.18350 安装包

    3. 遵循安装向导:运行安装程序,按照屏幕上的提示进行操作,包括接受许可协议、选择安装路径和功能。 4. 启动和配置:安装完成后,需要在SSMS中加载SQL Prompt插件,然后可以在工具菜单中找到它的选项,进行个性化...

    VMWare下安装MAcOS 10.9最新版的方法Mac OS X Server 10.6版本

    - 在安装操作系统时,按照屏幕提示进行操作,如果系统提示需要对硬盘进行格式化操作,应按照指导进行,这一步骤是必须的,因为虚拟硬盘需要以正确的格式挂载。 - 在进行到选择安装盘的步骤时,如果看不到硬盘选项,...

    从零开始,一步步安装虚拟机Mac10.6.x并完美.随意更新官方补丁(VM版)

    安装过程中,按照屏幕提示进行操作,选择语言、同意许可协议,然后选择虚拟机硬盘作为安装目标。 安装完成后,首次启动Mac OS X,你可能会遇到一些问题,比如没有声音、网络连接不畅或者显卡驱动不兼容。对于这些...

    VMWare下安装MAC OS X Snow Leopard 10.6

    在安装过程中,我们需要按照屏幕提示操作,安装完成后,我们就可以在VMWare虚拟机中使用MAC OS X Snow Leopard 10.6了。 在安装过程中,我们需要注意以下几点: * 在虚拟机设置中,我们需要将硬件设置正确,否则...

    教你在VMWare下安装MAC OS X Snow Leopard 10.6

    2. 启动虚拟机,使用Darwin或Rebel EFI引导,按照屏幕提示操作。 3. 当系统提示插入MAC OS X DVD时,返回虚拟机设置,将CD/DVD设备中的引导ISO替换为MAC OS X Snow Leopard的DMG镜像。 4. 关键步骤:确保选中...

    解决 ArcMap10.6 卡顿 属性等窗口打开慢的问题插件

    4. **运行补丁**:双击对应的 .msp 文件启动安装过程,按照屏幕提示进行操作。补丁会自动寻找并更新 ArcMap 的相应部分。 5. **重启 ArcMap**:安装完成后,重启 ArcMap,让新补丁生效。此时,你应该会发现程序的...

    汉化版CAM350 10.6的试用版_下载地址

    - **安装过程**:下载完成后,运行安装程序并按照屏幕上的指示进行操作。安装过程中可以选择安装路径和语言等选项。 - **激活试用版**:安装完成后,通常会自动进入试用模式。部分情况下可能需要输入试用授权码或...

    vax_patch_10.6.1862.rar

    标题中的"vax_patch_10.6.1862.rar"可能是指针对VAX系统的某个软件或操作系统的补丁包,版本号为10.6.1862,且被压缩在RAR文件中。RAR是一种常见的压缩格式,用于存储多个文件和文件夹,它提供了更好的数据压缩和...

    windows2003server安装itunes(v10.6.1.7)

    3. **安装过程**: 运行安装程序,遵循屏幕上的提示。在过程中,可能会询问你是否要添加快捷方式、关联文件类型等。根据你的需求进行选择。 4. **兼容性检查**: 安装过程中,iTunes可能会进行兼容性检查,确保与操作...

    Datastead_TVideoGrabber_SDK_10.6.2.2_All_Platforms_20180102_Downloadly.ir

    这款SDK支持多种视频源的捕获,包括硬件视频捕获设备(如摄像头、电视卡)、网络流媒体(如RTSP、HTTP、FTP等)、屏幕捕获以及文件播放。这意味着开发者可以利用它来创建各种应用,例如监控系统、视频会议、直播平台...

    无需刻录dmg光盘-_教你在VMware_Workstation_7.0_虚拟机安装苹果雪豹10.6

    按照屏幕提示进行安装,注意在安装过程中可能会遇到一些与非苹果硬件兼容性的问题,需要手动配置。 6. **安装补丁和驱动**:安装完成后,可能需要安装特定的补丁和驱动以解决虚拟环境下的问题,如声卡、显卡驱动等...

    Boot_Camp_Install-Setup_10.6

    - **屏幕显示异常**:若在 Windows 下屏幕出现空白或扭曲,可能需要更新显卡驱动程序,通常在安装 Boot Camp 驱动后会自动解决。 - **无法更改 Windows 分区名称**:这通常是权限问题,确保在管理员模式下操作。 -...

    WIN7安装Mac OS X10.6超详细教程(硬盘安装)

    以上就是可能的知识点概述,对于实际的教程,每个步骤都会包含详细的操作指导和屏幕截图,以帮助用户更直观地完成安装。需要注意的是,由于Mac OS X并未公开为Windows平台提供官方支持,因此在非苹果硬件上安装Mac ...

    10.6 DOS系统功能调用及BIOS调用实验(制作电子时钟)

    本实验“10.6 DOS系统功能调用及BIOS调用实验(制作电子时钟)”旨在通过汇编语言来实现一个实时显示系统当前时间的电子时钟。下面我们将详细探讨这些知识点。 首先,DOS(Disk Operating System,磁盘操作系统)是...

Global site tag (gtag.js) - Google Analytics