egret.Stage
包 egret
类 public class Stage
继承 egret.Stage → egret.DisplayObjectContainer → egret.DisplayObject → egret.EventDispatcher → egret.HashObject
Stage 类代表主绘图区。可以利用 DisplayObject 实例的 stage 属性进行访问。
Stage 类具有多个祖代类: Sprite、DisplayObject 和 EventDispatcher,属性和方法便是从这些类继承而来的。从这些继承的许多属性和方法不适用于 Stage 对象。
公共属性
| 属性 | 
|---|
| frameRate : number   获取并设置舞台的帧速率  | 
| maxTouches : number   设置屏幕同时可以触摸的数量  | 
| orientation : string   屏幕横竖屏显示方式,目前 Native 下只能在配置文件里设置  | 
| scaleMode : string   一个 StageScaleMode 类中指定要使用哪种缩放模式的值  | 
| stageHeight : number   舞台的当前高度(以像素为单位)  | 
| stageWidth : number   舞台的当前宽度(以像素为单位)  | 
| textureScaleFactor : number   绘制纹理的缩放比率,默认值为1  | 
公共方法
| 方法 | 
|---|
| getImplementation(interfaceName:string):any | 
| invalidate():void   调用 invalidate() 方法后,在显示列表下次呈现时,Egret 会向每个已注册侦听 Event.RENDER 事件的显示对象发送一个 Event.RENDER 事件  | 
| registerImplementation(interfaceName:string,instance:any):void | 
| setContentSize(width:number,height:number):void   设置分辨率尺寸  | 
事件
| Events | 
|---|
| egret.Event.RESIZE   当stageWidth或stageHeight属性发生改变时调度  | 
| egret.Event.DEACTIVATE   当stage失去焦点后调度  | 
| egret.Event.ACTIVATE   当stage获得焦点后调度  | 
| egret.Event.ADDED   将显示对象添加到显示列表中时调度。  | 
| egret.Event.ADDED_TO_STAGE   在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。  | 
| egret.Event.REMOVED   将要从显示列表中删除显示对象时调度。  | 
| egret.Event.REMOVED_FROM_STAGE   在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。  | 
| egret.Event.ENTER_FRAME   [广播事件] 播放头进入新帧时调度。  | 
| egret.Event.RENDER   [广播事件] 将要更新和呈现显示列表时调度。  | 
| egret.TouchEvent.TOUCH_MOVE   当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。  | 
| egret.TouchEvent.TOUCH_BEGIN   当用户第一次触摸启用触摸的设备时(例如,用手指触摸手机屏幕)调度。  | 
| egret.TouchEvent.TOUCH_END   当用户移除与启用触摸的设备的接触时(例如,将手指从屏幕上抬起)调度。  | 
| egret.TouchEvent.TOUCH_TAP   当用户在启用触摸设备上的已启动接触的同一 DisplayObject 实例上抬起接触点时(例如,手机点击屏幕后抬起)调度。  | 
| egret.TouchEvent.TOUCH_RELEASE_OUTSIDE   当用户在启用触摸设备上的已启动接触的不同 DisplayObject 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。  | 
属性详细信息
frameRate
frameRate : number = 30
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 
获取并设置舞台的帧速率。帧速率是指每秒显示的帧数。帧速率的有效范围为每秒 0.01 到 60 个帧。
注意: 修改任何一个Stage的frameRate属性都会同步修改其他Stage的帧率。
maxTouches
maxTouches : number = 99
- 支持版本:all
 - 运行平台:Web,Native
 
设置屏幕同时可以触摸的数量。高于这个数量将不会被触发响应。
orientation
orientation : string
- 支持版本:2.4
 - 运行平台:Web
 
屏幕横竖屏显示方式,目前 Native 下只能在配置文件里设置。一个 egret.OrientationMode 类中指定要使用哪种显示方式。以下是有效值:
- egret.OrientationMode.AUTO -- 应用始终跟随屏幕的方向显示,始终保证由上往下看。
 - egret.OrientationMode.PORTRAIT -- 应用始终保持竖屏模式,即横屏看时,屏幕由左往右看。
 - egret.OrientationMode.LANDSCAPE -- 应用始终保持横屏模式,即竖屏看时,屏幕显示由右往左。
 - egret.OrientationMode.LANDSCAPE_FLIPPED -- 应用始终保持横屏模式,即竖屏看时,屏幕显示由左往右。
 
scaleMode
scaleMode : string = egret.StageScaleMode.SHOW_ALL
- 支持版本:all
 - 运行平台:Web,Native
 
一个 StageScaleMode 类中指定要使用哪种缩放模式的值。以下是有效值:
- StageScaleMode.EXACT_FIT -- 整个应用程序在指定区域中可见,但不尝试保持原始高宽比。可能会发生扭曲,应用程序可能会拉伸或压缩显示。
 - StageScaleMode.SHOW_ALL -- 整个应用程序在指定区域中可见,且不发生扭曲,同时保持应用程序的原始高宽比。应用程序的可能会显示边框。
 - StageScaleMode.NO_SCALE -- 整个应用程序的大小固定,因此,即使播放器窗口的大小更改,它也会保持不变。如果播放器窗口比内容小,则可能进行一些裁切。
 - StageScaleMode.NO_BORDER -- 保持原始宽高比缩放应用程序内容,缩放后应用程序内容的较窄方向填满播放器视口,另一个方向的两侧可能会超出播放器视口而被裁切。
 - StageScaleMode.FIXED_WIDTH -- 保持原始宽高比缩放应用程序内容,缩放后应用程序内容在水平和垂直方向都填满播放器视口,但只保持应用程序内容的原始宽度不变,高度可能会改变。
 - StageScaleMode.FIXED_HEIGHT -- 保持原始宽高比缩放应用程序内容,缩放后应用程序内容在水平和垂直方向都填满播放器视口,但只保持应用程序内容的原始高度不变,宽度可能会改变。
 
stageHeight
stageHeight : number
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 
舞台的当前高度(以像素为单位)。
stageWidth
stageWidth : number
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 
舞台的当前宽度(以像素为单位)。
textureScaleFactor
textureScaleFactor : number = 1
- 支持版本:all
 - 运行平台:Web,Native
 
绘制纹理的缩放比率,默认值为1
方法详细信息
getImplementation()
public getImplementation(interfaceName:string):any
- 支持版本:all
 - 运行平台:Web,Native
 - 参数
- interfaceName:string
 
 
invalidate()
public invalidate():void
调用 invalidate() 方法后,在显示列表下次呈现时,Egret 会向每个已注册侦听 Event.RENDER 事件的显示对象发送一个 Event.RENDER 事件。每次您希望 Egret 发送 Event.RENDER 事件时,都必须调用 invalidate() 方法。
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 
registerImplementation()
public registerImplementation(interfaceName:string,instance:any):void
setContentSize()
public setContentSize(width:number,height:number):void
设置分辨率尺寸
示例
/*
 * 以下示例演示了激活舞台或调整舞台大小时调度事件。
 */
class  StageExample  extends  egret.DisplayObjectContainer  {
  public  constructor()  {
    super();
    var stage:egret.Stage  = egret.MainContext.instance.stage;
    //添加激活侦听
    stage.addEventListener(egret.Event.ACTIVATE,  this.activateHandler,  this);
    //添加取消激活侦听
    stage.addEventListener(egret.Event.DEACTIVATE,  this.deactivateHandler,  this);
    //添加屏幕大小改变侦听
    stage.addEventListener(egret.Event.RESIZE,  this.resizeHandler,  this);
  }
  private  activateHandler():void  {
    egret.log("activateHandler");
  }
  private  deactivateHandler():void  {
    egret.log("deactivateHandler");
  }
  private  resizeHandler():void  {
    egret.log("resizeHandler");
    var stage:egret.Stage  = egret.MainContext.instance.stage;
    egret.log("stageWidth: "  + stage.stageWidth  +  " stageHeight: "  + stage.stageHeight);
  }
}

