全屏模式,我一直在这个Flex应用程序中争夺一段时间,而我在谷歌搜索结果上的结果是为了结束我的困境。通过执行Application.application.stage.displayState = StageDisplayState.FULL_SCREEN;
进入全屏模式没有问题,但其余内容只是位于左上角的原始大小。
好吧,我说,我会做一个stage.scaleMode = StageScaleMode.SHOW_ALL
并让它弄清楚如何解决这个问题。看起来确实如此。除了当您将鼠标悬停在各个复选框和按钮以及各种组件上时,它们都会轻微地 fidget 。当他们调整大小时,只需稍微向上或向下跳跃...... 鼠标悬停在上。嗯,这令人沮丧,但可以忍受。我总是可以为所有人明确地调用invalidateSize()
。
但对于组合框。底部的菜单从屏幕底部开始,当我弹出全屏模式时,它们的下降中断了一半。我不知道如何修复那个。有人可以介入这里,让我摆脱痛苦吗?
将Flex应用程序扩展到全屏的正确方法是什么?
var button:Button = button_fullscreen;
try {
if(stage.displayState == StageDisplayState.FULL_SCREEN) {
Application.application.stage.displayState = StageDisplayState.NORMAL;
button.label = "View Fullscreen Mode";
stage.scaleMode = StageScaleMode.NO_SCALE;
} else {
Application.application.stage.displayState = StageDisplayState.FULL_SCREEN;
button.label = "Exit Fullscreen Mode";
stage.scaleMode = StageScaleMode.SHOW_ALL;
}
invalidateSizes(); // Calls invalidateSize() explicitly on several components.
} catch(error:SecurityError) {
Alert.show("The security settings of your computer prevent this from being displayed in fullscreen.","Error: "+error.name+" #"+error.errorID);
} catch(error:Error) {
Alert.show(error.message,error.name+" #"+error.errorID);
}
答案 0 :(得分:1)
有时flex会出问题:)
尝试以下方法
stage.align = StageAlign.TOP_LEFT;
然后在调整大小或添加到舞台时手动设置缩放
private function updateScaling():void
{
if(stage.stageWidth != width || stage.stageHeight != height)
{
var scaling:Number = 1;
if(width>height)
{
scaling = stage.stageWidth / width;
}
else
{
scaling = stage.stageHeight / height;
}
scaleX = scaleY = scaling;
}
}