我在一个Air应用程序中一起使用下两个属性有问题,我需要一些功能来全屏显示我的应用程序和不同的显示比例。我的意思是,如果用户有17“和其他有24”显示器,我的应用程序应该节省比例。所以,我已经开始使用这两个属性StageScaleMode.SHOW_ALL StageDisplayState.FULL_SCREEN,看到内部画布(缓冲区)比外部画布大,请看图片上的第一个StageDisplayState.FULL_SCREEN和第二个StageDisplayState.FULL_SCREEN和StageScaleMode.SHOW_ALL。


你能帮我说一下如何解决这个问题吗?谢谢。
发布于 2011-01-11 05:58:53
我已经开发了自己的方法来调整大小,而不使用SHOW_ALL属性,但目前它只能在Windows系统上正常工作。
发布于 2010-12-22 20:54:24
StageScaleMode.SHOW_ALL可确保始终显示Flash电影的全部内容。根据内容的大小和放置图像的位置,这可能会超出屏幕的实际显示宽度。
如果你想让你的电影始终在屏幕上居中,而不是缩放它的内容,可以这样做(点击全屏):
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
public class Test extends MovieClip
{
private var content : Sprite;
public function Test ()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
content = new Sprite( );
content.graphics.beginFill( 0, 1 );
content.graphics.drawRect( 0, 0, 200, 100 );
content.graphics.endFill( );
addChild( content );
stage.addEventListener( Event.RESIZE, onResize );
content.addEventListener( MouseEvent.CLICK, onMouseClick );
}
public function onMouseClick (ev : Event) : void
{
stage.displayState = StageDisplayState.FULL_SCREEN;
}
public function onResize ( ev : Event ) : void
{
content.x = (stage.stageWidth - content.width) * .5;
content.y = (stage.stageHeight - content.height) * .5;
}
}
}然后将所有元素附加到内容Sprite,而不是舞台。
发布于 2013-02-02 01:54:31
这里真正的问题是,除stage.scaleMode = StageScaleMode.NO_SCALE;之外的任何内容都不会报告实际的 stage.stageWidth和stage.stageHeight,而是返回创作的尺寸的宽度和高度。
https://stackoverflow.com/questions/4509123
复制相似问题