2011-07-30 76 views
2

我建立在Flash Builder的AIR應用程序,需要得到類似stage.stageWidthstage.stageWidth不工作的窗口和nativeWindow.width收益寬度 - 我需要我的內容/臺的寬度。有什麼辦法嗎?Flash Builder中 - 讓舞臺寬度

感謝

+0

爲什麼 「stage.stageWidth」 「不行」?你能詳細解釋一下嗎? – 2011-07-30 14:13:39

回答

1

stage.stageWidth應該返回整個舞臺,這應該是幾乎相同大小的窗口,減去鉻的寬度。如果你想獲得添加到舞臺上的所有內容,那麼最簡單的方法是將單個容器添加到舞臺上,並將所有對象添加到舞臺上,然後檢查該容器的寬度/高度。這會準確地告訴你所有你創建並添加到顯示列表中的對象(在這個容器或其中一個子項中)的累積寬度/高度。

或者,如果您使用的是文檔類,則該文檔類本質上是默認添加到舞臺,所以添加的東西作爲文檔類的,而不是添加到舞臺的子容器。然後,檢查文檔類的寬度/高度。例如:

package com.katruax.collageapp 
{ 
    import flash.display.MovieClip; 
    import flash.display.StageAlign; 
    import flash.display.StageScaleMode; 
    import flash.events.Event; 
    /** 
    * ... 
    * @author Jesse Nicholson 
    */ 
    public class MyApp extends MovieClip 
    {  

    public function MyApp() 
    {  
     if (stage) { 
      init(); 
     }else { 
      addEventListener(Event.ADDED_TO_STAGE, init); 
     }   
    } 

    private function init(e:Event = null):void 
    {  
      //Set the alignment and scale mode of the stage 
      stage.scaleMode = StageScaleMode.NO_SCALE; 
      stage.align = StageAlign.TOP_LEFT; 


      var movieClipA:MovieClip = new SomeLibraryMovieClip1(); 
      var movieClipB:MovieClip = new SomeLibraryMovieClip2(); 
      this.addChild(movieClipA); 
      this.addChild(movieClipB); 
      trace(this.height, this.width); 
    } 

} 

請注意,我設置舞臺縮放模式和對齊模式。這是因爲我在AIR 1.0(在當天返回)注意到沒有設定步驟,目標位置以及在舞臺上閱讀的高度/寬度時,這些特性導致了類似的結果,在我的事業很可能是因爲縮放。由於某種原因,舞臺似乎能夠沿着NativeWindow中的X/Y進行翻譯,儘管這可能不再是這種情況,但無論如何這都是很好的做法。希望這可以幫助。

+0

根據您的文章,我發現我可以只使用'width'和'height' 非常感謝 – simPod

相關問題