【发布时间】:2013-05-22 19:43:17
【问题描述】:
我正在尝试构建某种在被调用时重叠的菜单(通过按下菜单按钮)。 由于这将是一个移动应用程序,因此我希望所有度量都具有响应性,因此以百分比而不是像素编写。
我正在尝试制作一个像 Facebook 应用程序那样的菜单幻灯片。
我的解决方案是设置一个宽度为 0% 的侧边菜单。当按下菜单按钮时,菜单将扩大到设备屏幕宽度的 70%,从而覆盖 70% 的宽度。
我一直在尝试通过这样做来解决问题
<fx:Script>
<![CDATA[
protected function button1_clickHandler(event:MouseEvent):void {
trace( stage.fullScreenWidth, stage.fullScreenHeight );
trace(meny.width);
if (meny.width !== 0) {
meny.width = 0;
} else {
meny.width = 0.5*stage.fullScreenWidth;
}
}
]]>
</fx:Script>
当我调试跟踪显示时,我得到了正确的值。在这种模拟 iPhone 4 的情况下,它给了我:540(宽度)960(高度)和 270(meny.width)。
但是,即使计算正确(270 是 540 的 50%),meny 的宽度也会覆盖屏幕的一半以上,大约 80%~
为什么要这样做,解决方案是什么?调试控制台给了我正确的值,但它并没有工作。 我还在插入的 Android 设备上尝试过同样的问题,所以这不是仿真的问题。
感谢任何解决方案。
【问题讨论】:
-
您是否在任何父对象上设置 scaleX/Y?你的 stage.scaleMode 设置为 NO_SCALE 了吗?
-
我没有使用任何 scaleX/Y 也没有使用 'NO_SCALE:String = "noScale"'。我对 AS3 很陌生,上周开始,所以我没有那么有经验。任何用户友好的建议都是一个很好的起点。谢谢
-
在构造函数中尝试设置:
stage.scaleMode = StageScaleMode.NO_SCALE; -
我很抱歉,但我对 AS3 的了解非常有限,我不知道您指的是什么。如果你能以某种方式让新人更容易理解,或者向我展示代码的样子,我将永远感激不尽。然后我还可以与全班同学分享解决方案:)
-
您是否在应用程序类中设置了
applicationDPI?如果是这样,您需要在手动设置的代码中考虑 DPI 的变化(iPhone 以 320dpi 运行,默认情况下 applicationDPI 设置为 160)。
标签: actionscript-3 flash apache-flex width percentage