有谁知道如何检索在编制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返回了我认为在这个例子中不正确的东西,需要一个替代方案。
调整大小并没有帮助,因为事后我需要它。
答案 0 :(得分:7)
:
stage.scaleMode = StageScaleMode.SHOW_ALL;
Event.RESIZE
未发送stage
,因为没有调整阶段的调整。
stage.width
- 是一个参数,它为您提供放置在其上的所有显示对象的大小(想象一下舞台上作为一个MC的所有内容)。
stage.stageWidth
- 此参数只会返回默认宽度(因为没有REIZE,因为你有scaleMode=SHOWALL
,通常它会返回可见的flash阶段大小。
如果您想获得屏幕尺寸(设备重新分辨率):
Capabilities.screenResolutionX
SHOW_ALL
参数表示应用程序要拉伸到闪存显示大小。
如果您想为不同尺寸的屏幕/闪光灯显示阶段更改某些内容,
您需要使用NO_SCALE
属性。
P.S。对于宽度参数,适用相同的规则。
<强>更新强>
经过一些测试后找到了解决方案:
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.
答案 1 :(得分:3)
获取已发布的SWF大小的真正答案是使用
this.loaderInfo.width;
this.loaderInfo.height;
在较旧的动作脚本论坛上找到它,这是我自己忘记的事情。
你可以在ASdoc上查找加载器信息,他们会给你一个深入的解释。