好吧,我已经尝试了很多方法让我的游戏在全屏运行,这似乎是不可能的。这是我到目前为止所尝试的内容:
代码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。 主要的问题是没有让应用程序在全屏运行,它确实如此,但电影剪辑,保留在一个区域,而不是覆盖所有屏幕。我认为问题可能与全屏方法无关,可能与随机生成器有关吗?
答案 0 :(得分:1)
舞台调整为全屏幕,必须在用户操作上完成,例如mouseClick:
来自文档:“响应用户点击鼠标或按键启动全屏模式;没有用户输入,电影无法更改Stage.displayState。”
static public function handleStageDisplayStateChange ( e : MouseEvent ) : void
{
if ( stage.displayState == StageDisplayState.NORMAL )
stage.displayState = StageDisplayState.FULL_SCREEN;
else
stage.displayState = StageDisplayState.NORMAL;
}
答案 1 :(得分:0)
尝试stage
的{{3}}属性。这里还有信息:scalemode
答案 2 :(得分: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);
}
}