缩放后检索原始舞台宽度和高度

WOR*_*MSS 0 size actionscript stage actionscript-3

有谁知道如何检索在编译Air/Flash应用程序期间设置的"ORIGINAL"阶段高度和宽度

我已将应用程序设置为编译为1920x1080;

我有stage.scaleMode = StageScaleMode.SHOW_ALL;

和stage.nativeWindow.maximize();

但是当我跟踪stage.stageWidth时,我得到1280这是屏幕的分辨率.

我希望得到1920年.

我不能使用stage.width或stage.getBounds(stage),因为这会返回6000.由于项目被屏蔽掉了.

由于stage.stageWidth是屏幕分辨率,我希望我可以使用它并使用stage.scaleX在数学上计算原始.但即使SHOW_ALL缩放整个应用程序,stage.scaleX也会返回1.

我很想将1920x1080硬编码到应用程序中,但此代码正用于各种维度的多个应用程序.现在我变得难过了.

欢迎任何帮助.

编辑:我知道"显示所有"的内容,你不需要告诉我它.

我也知道stage.width和stage.stageWidth是做什么的,但是stage.stageWidth返回了我认为在这个例子中不正确的东西,需要一个替代方案.

调整大小并没有帮助,因为事后我需要它.

Jev*_*jev 7

当你设置:

stage.scaleMode = StageScaleMode.SHOW_ALL;
Run Code Online (Sandbox Code Playgroud)

Event.RESIZE不beeing从出动stage,因为没有舞台的大小调整正在发生.

stage.width - 是一个参数,它为您提供放置在其上的所有显示对象的大小(想象一下舞台上作为一个MC的所有内容).

stage.stageWidth- 此参数将仅返回默认宽度(因为没有REIZE发生,因为你有scaleMode=SHOWALL,通常它会返回可见的flash阶段大小.

如果你想获得一个屏幕的大小(设备rezolution):

Capabilities.screenResolutionX
Run Code Online (Sandbox Code Playgroud)

SHOW_ALL scaleMode的参数表示应用程序要拉伸到闪存显示大小.

如果要为屏幕/闪光显示阶段的不同大小更改某些内容,则需要使用NO_SCALE属性.

ps for width参数适用相同的规则.

UPDATE

经过一些测试后找到了解决方案:

stage.scaleMode = StageScaleMode.NO_SCALE; // reseting the scale to get actual width
ACTUAL_STAGE_WIDTH = stage.stageWidth; // this is where you getting the width you need
stage.scaleMode = StageScaleMode.SHOW_ALL; // setting back the scale.
Run Code Online (Sandbox Code Playgroud)