【发布时间】:2014-03-04 03:44:52
【问题描述】:
我非常努力地开发了一款可以在我的 Galaxy Note 3 上完美显示的应用程序。但是,它无法在 iPhone 和我测试过的另一个 Droid 上正确显示。我的问题是 addChild() 然后调整它的大小以适应屏幕。出于某种原因,当我添加背景时 (addBG(); 屏幕尺寸有效,但如果我将 addChild 加载到 BG,这在我的 Note 3 上效果很好,但在 iPhone 或其他 Android 设备上效果不佳。
我的问题是我创建的 screenX, screenY var。对于设备,它们似乎有所不同。或者我不确定这是一个“渲染顺序问题”。对于解决此问题的帮助将非常感激,因此它在每部手机上看起来都很棒。我已经阅读了一些关于这个主题的 tuts,但它们令人困惑。我认为我的代码很接近,我希望,也许它只需要调整。 !
这是 iPhone 上关于屏幕的截图。看到白色不适合整个屏幕。
这是我的 Droid Note 3 的截图。
包中声明的变量:
这当然不是我的完整代码,但只是我认为相关的代码。
public var screenX:int;
public var screenY:int;
public function Main()
{
if (stage)
{
setStage();
addBG();
}
}
public function setStage()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
if (flash.system.Capabilities.screenResolutionX > stage.stageWidth)
{
screenX = stage.stageWidth;
screenY = stage.stageHeight;
}
else
{
screenX = flash.system.Capabilities.screenResolutionX;
screenY = flash.system.Capabilities.screenResolutionY;
}
}
这有效:addBG();
public function addBG()
{
theBG = new BG();
addChild(theBG);
theBG.width = screenX;
theBG.height = screenY;
}
这不是:addAbout();
public function addAbout()
{
About = new viewAbout();
About.width = screenX;
About.height = screenY;
theBG.addChild(About);
TweenMax.fromTo(About,1, {alpha:0}, {alpha:1, ease:Expo.easeOut} );
}
更新:另一个更复杂的负载也从一个按钮调用并且有同样的问题。我希望你能看到我正在尝试做的事情的逻辑。首先将 BG 设置为设备,然后加载并调整内容大小以按比例适合我加载的 BG。原因是,BG会扭曲成不同的比例,没关系,但内容不行。因此,这里是将内容加载到 BG 中,然后将内容加载到该容器中的示例。
public function addRosaryApp()
{
Rosary = new viewRosaryApp();
Rosary.width = screenX;
Rosary.height = screenY;
theBG.addChild(Rosary);
TweenMax.fromTo(Rosary,1, {alpha:0}, {alpha:1, ease:Expo.easeOut} );
contentRosary = new contentRosaryApp();
theBG.addChild(contentRosary);
contentRosary.width = screenX;
contentRosary.scaleY = contentRosary.scaleX;
contentRosary.x = screenX/2 - contentRosary.width/2;
contentRosary.y = menuBanner.height;
}
【问题讨论】:
-
如果你跟踪你的 screenX/screenY,你是否得到了正确的 iphone 值?
-
是的,它就像 600 x 900 或者我忘记的东西。它是一个iphone 4s。它适用于 BG,非常适合屏幕。所以也许我在想这是一个加载问题,或者 iPhone 并不总是看到 screenX 和 ScreenY 的值
-
你应该使用 stage.fullscreenWidth, fullscreenHeight。有什么区别吗?
-
我会试试的。 :) 然后回复你。
-
负载正常,但我在上面添加了更多示例,因为我还需要在页面上加载内容,并且无法拉伸。看来 screenX 仍然无法正常工作。 :(
标签: android actionscript-3 actionscript air resize