顯示具有 Stage 標籤的文章。 顯示所有文章
顯示具有 Stage 標籤的文章。 顯示所有文章

2012年5月25日 星期五

Capabilities.screenResolutionX、Capabilities.screenResolutionY、stage.fullScreenSourceRect


Capabilities.screenResolutionX  &  Capabilities.screenResolutionY


import flash.system. Capabilities ;
/*[靜態] [唯讀] - 讀取螢幕(目前)的最大水平解析度。*/
trace("Capabilities.screenResolutionX : " + Capabilities.screenResolutionX);
/*[靜態] [唯讀] - 讀取螢幕(目前)的最大垂直解析度。*/
trace("Capabilities.screenResolutionY : " + Capabilities.screenResolutionY);


package  {
 
 import flash.display.MovieClip;
 import flash.events.Event;
 import flash.system.Capabilities;

 public class ScreenResolutionXY extends MovieClip {
  
  public function ScreenResolutionXY() {
   /*當在swf執行後,取得目前螢幕解析度最大值, 此時調整螢幕解析度,ENTER_FRAME事件並不能達到更新數值的效果*/
   this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
   return;
  }
  
  public function enterFrameHandler(event:Event):void{
   this.hPx.text = Capabilities.screenResolutionX.toString();
   this.vPx.text = Capabilities.screenResolutionY.toString();
   return;
  }
 }
}



stage.fullScreenSourceRect

全螢幕模式中的硬體縮放

在 Flash Player 或 AIR 中,可以使用 Stage 類別的 fullScreenSourceRect 屬性,將舞台的特定區域設定縮放為全螢幕模式。Flash Player 和 AIR 會使用硬體縮放 (如果可供使用的話),利用使用者電腦上的顯示卡和視訊卡,而且一般來說,透過硬體縮放顯示內容的速度通常會比軟體縮放快。

/*整個舞台放大為全螢幕*/
if(Capabilities.screenResolutionX <= 800){
stage.fullScreenSourceRect = new Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight);
}

/*以 this.stage 的 (100,100)為起點, 寬300 x 高200 pixel 區域, 被放大為全螢幕*/
stage.fullScreenSourceRect = new Rectangle(100,100,300,200);





2010年12月31日 星期五

Stage --- MainTimeline ---

991208_Stage_numChild_1.swf
91208_Stage_numChild_1.fla




trace("實體名稱 - name:" + name); // root1
trace("類別名稱 - getQualifiedClassName(this):" + getQualifiedClassName(this)); // _991208_Stage_numChild_1_fla::MainTimeline
trace("父類別名稱 - getQualifiedSuperclassName(this):" + getQualifiedSuperclassName(this)); // flash.display::MovieClip
trace("stage:" + stage); // [object Stage]
trace("Stage:" + Stage); // [class Stage]
trace("stage.stageWidth:" + stage.stageWidth); // 550
trace("stage.numChildren:" + stage.numChildren); // 1 ← stage只有一個子物件,即MainTimeline

//*** stage物件 - 主時間軸 - 主場景上有兩個實體 aaa & bbb ,aaa有 3 個子物件 ***
//一旦播放FLASH影片,將自動建立stage物件, 接著自動建立第一個相關成員,也就是「主要時間軸」
//stage.getChildAt(0).name ---> 將得到自動賦予的主時間軸的實體名稱root1,但這instance無法被操作

trace("stage.getChildAt(0).name:" + stage.getChildAt(0).name); // root1
trace("------------------------"); 

trace("this:" + this); // [object MainTimeline]
trace("root:" + root); // [object MainTimeline]
trace("root.name:" + root.name); // root1
trace("this.name:" + this.name); // root1
trace("this.numChildren:" + this.numChildren); // 2
trace("this.getChildAt(0).name:" + this.getChildAt(0).name); // aaa
trace("------------------------");

trace("aaa.numChildren:" + aaa.numChildren); // 3
trace("aaa.getChildAt(2).name:" + aaa.getChildAt(2).name); // instance5
trace("------------------------");

trace("root.parent:" + root.parent); // [object Stage]
trace("this.parent:" + this.parent); // [object Stage]
trace("root.parent.root:" + root.parent.root); // [object Stage]
trace("root.parent.getChildAt(0):" + root.parent.getChildAt(0)); //[object MainTimeline]
trace("root.parent.getChildAt(0).name:" + root.parent.getChildAt(0).name); //root1