2011-10-13 38 views
0

好吧,我試過很多方法讓我的遊戲在全屏上運行,這似乎是不可能的。以下是我試過到目前爲止:AS3:全屏不讓我的電影剪輯遍佈它

CODE 1:

stop(); 
stage.stageWidth = Capabilities.screenResolutionX; 
stage.stageHeight = Capabilities.screenResolutionY; 


var arrayStars:Array = []; 
for(var i:int = 0; i<260; i++) 
{ 
    var star:Star = new Star(); 

    star.x = Math.floor(Math.random() * stage.stageWidth); 
    star.y = Math.floor(Math.random() * stage.stageHeight); 

    addChild(star); 
    arrayStars.push(star); 
} 

代碼2:

stop(); 
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE; 
var sX:Number =stage.stageWidth; 
var sY:Number = stage.stageHeight; 


var arrayStars:Array = []; 
for(var i:int = 0; i<260; i++) 
{ 
    var star:Star = new Star(); 

    star.x = Math.floor(Math.random() * sX); 
    star.y = Math.floor(Math.random() * sY); 

    addChild(star); 
    arrayStars.push(star); 
} 

代碼3:類似於碼2,但使用的變量SX和SY我直接使用stage.stageWidth和stage.stageHeight。 主要的問題是沒有讓應用程序在全屏運行,它確實,但電影剪輯,保持在一個區域,不覆蓋所有的屏幕。我認爲這個問題可能與全屏方法無關,也許與隨機生成器有關?

回答

1

的階段調整爲全屏和背部必須在用戶itteraction完成,FO例如鼠標點擊:

從技術文檔:「全屏模式是在響應用戶單擊鼠標或按鍵啓動用戶按下;電影不能在沒有用戶輸入的情況下更改Stage.displayState。「

static public function handleStageDisplayStateChange (e : MouseEvent) : void 
{ 
    if (stage.displayState == StageDisplayState.NORMAL) 
     stage.displayState = StageDisplayState.FULL_SCREEN; 
    else 
     stage.displayState = StageDisplayState.NORMAL; 
} 
0

我認爲代碼在舞臺實際切換到全屏之前運行。試試這個:

private function OnFullScreenButtonMouseClick(_e:MouseEvent):void { 
    stage.addEventListener(Event.RESIZE, OnResize, false, 0, true); 
    stage.align = StageAlign.TOP_LEFT; 
    stage.scaleMode = StageScaleMode.NO_SCALE; 
    stage.displayState = StageDisplayState.FULL_SCREEN; 
} 
... 
function OnResize(event:Event):void { 
    var sX:Number =stage.stageWidth; 
    var sY:Number = stage.stageHeight; 


    var arrayStars:Array = []; 
    for(var i:int = 0; i<260; i++) 
    { 
     var star:Star = new Star(); 

     star.x = Math.floor(Math.random() * sX); 
     star.y = Math.floor(Math.random() * sY); 

     addChild(star); 
     arrayStars.push(star); 
    } 
}