Flash AS3从顶部降低舞台高度

时间:2013-01-07 21:43:03

标签: actionscript-3 flash

我正在尝试从顶部减小舞台高度以获得在特定区域下生成的项目。 HUD在哪里。

我曾经把我的HUD放在底部,没有引起任何问题。因为我的功能有:

headY = Math.ceil((((stage.stageHeight - hudHeight)))/(headWidth))*Math.random())*headWidth;

这会使stage.stageHeight减少80,因此头部可以正常生成。然而,当HUD位于顶部时,情况并非如此。这条线目前的作用是让头部无法在舞台高度下产生 - 80像素而不是顶部。

我的问题是;如何让代码从顶部减少舞台高度。

提前致谢,

霍尔迪阿

关于我的问题的额外信息: 实际上,我正在尝试做的就是“选择”舞台的底部,让舞台脱离画面。我只是使用stageheight作为控制800像素的指标。因此,当我操纵舞台高度时,我不必更改代码。但是,因为这可能是不可能的。应该有不同的方式。我希望你现在明白我的问题。如果没有,我想要做的是从80像素向下和向下选择所有内容。舞台的高度为800像素,因此我需要选择720像素。但是,我找不到一种方法来选择底部720像素..只有前720像素。

2 个答案:

答案 0 :(得分:1)

虽然你的问题很难理解,但答案很可能是你不能。 stageHeight是只读的。您可以在HTML中设置它,甚至将其设置为百分比。但你无法在Actionscript中改变它。

答案 1 :(得分:0)

你的问题的措辞方式,使你很难理解你想要的东西。

我猜你想要的是产生一个给定的对象,并确保它不会在与HUD相同的空间中产生。

因此,如果您的屏幕是800 x 800,并且您的HUD占据了屏幕的整个宽度和屏幕的前80个像素,您可以尝试使用它来获得有效的y生成位置:

var headY:Number = Math.random() * (800 - 80) + 80;

这样可以得到80 - 800的结果值;

鉴于你的变量,我建议你这样做:

var headY:Number = Math.random() * (stage.stageHeight - hudHeight) + hudHeight; 

现在根据您的代码,您似乎也在努力确保无论您产生的是什么,都不是部分偏离屏幕的顶部或底部,因此您需要考虑头部的高度。所以请考虑以下代码:

var headY:Number = Math.random() * ((stage.stageHeight - headHeight) - (hudHeight + headHeight)) + (hudHeight + headHeight);

不完全确定这是否是您正在寻找的,但它是我根据您的问题做的最好的,并试图假设您想要的是什么。