当我们用强制改变用户屏幕设置的办法以达到全屏浏览时,我们应该考虑这样一个问题,当用户浏览其它窗口,使程序处于后台时,是否应还原用户先前的设置,个人认为这种考虑是必要的,否则用户的视觉习惯就会受到冲击。我们为用户考虑得越多,我们的作品也就越走向成熟。
实现这一功能主要依靠两个事件:
on activateApplication//切换到前台
end
on deactivateApplication//切换到后台
end
在两个事件中加入我们想要的操作
on activateApplication//切换到前台
if (FullScreen=FALSE)then//FullScreen是否为全屏状态
changeDisplay()//改屏幕设置为全屏状态
FullScreen=TRUE
the centerStage=TRUE
updatestage
end if
end
on deactivateApplication//切换到后台
if (FullScreen=TRUE) then
recoverDisplay()//还原屏幕设置
FullScreen=FALSE
the centerStage=TRUE
updatestage
end if
end
测试的结果表明,这样做是安全的。但如果你在过渡通道中加入了过渡效果,并且有舞台大小改变时(正如本例),此时发生这两个事件,就会有潜在的不安全的因素存在。这种错误是不确定的,我们无法确定在什么时候会出错(可用alt+tab来回切换试试)。你可放弃其中一者来试一下(删除过渡或不使舞台大小发生变化)。当然你也可以加入一个条件语句来决定什么时候执行,什么时候不执行。
if (FullScreen=FALSE AND ChangeAble)then //ChangeAble 是决定是否改分辨率
changeDisplay()
FullScreen=TRUE
the centerStage=TRUE
updatestage
end if
这样做的好处是在有过渡发生时,可以使ChangeAble=FALSE来屏蔽这两个事件!当过渡结束时使ChangeAble=TRUE再执行事件。这们就绕过了潜在的不安全的因素。
得到的结论就是,多为用户考虑;以实用为主,不可过多花俏。
不知之处,请多多指正!
需ADisplayXtra.x32支持
ADisplayXtra修改屏幕分辩率源码下载