我想要我的“舞台”或文档的全部尺寸或任何它的名称。我刚开始使用flash,我一直在寻找并没有成功。
我最接近的是“stage.height”,但它没有做我想要的。我意识到“stage.height”返回我对象的2倍大小。我想要实现的是确保对象无法进入屏幕之外。我使用他们的示例移动动作脚本代码。我试图修改它以满足我的需要,这是编辑过的代码(其中stage.height没有按预期工作,也没有宽度)......
function fl_MoveInDirectionOfKey(event:Event)
{
if (upPressed)
{
Ball.y = Math.max(0, Ball.y - 5);
}
if (downPressed)
{
Ball.y = Math.min(Ball.y + 5, stage.height);
}
if (leftPressed)
{
Ball.x = Math.max(0, Ball.x - 5);
}
if (rightPressed)
{
Ball.x = Math.min(Ball.x + 5, stage.width);
}
}
答案 0 :(得分:2)
你应该使用“stage.stageWidth”作为舞台的宽度,或者“stage.stageHeight”作为舞台的高度。
请记住,如果您在Flash项目中使用嵌套的影片剪辑,并且想要控制其中的某些对象;它包含您的对象设置为零值的影片剪辑的x和y坐标更好;如果x和y坐标设置为另一个值,则必须找到一些计算来实现您想要做的事情。
如果您想了解stage.stageWidth和stage.width或stage.stageHeight和stage.height之间的差异,请查看以下链接:
Difference between calling stage.width and stage.stageWidth?
Difference between stage.width and stage.stageWidth
为了更好地理解,我用一个例子来描述它。
想象一下,我们有一个1024px宽度和768px高度的舞台。我们在舞台上以30px x和70px y坐标创建一个影片剪辑元件。现在我们在该影片剪辑中添加一些内容,并将x和y坐标设置为零值。如果我们返回根时间轴(主阶段),影片剪辑的对象设置在30px x和70px y坐标不是0.如果我们想要将对象的x和y坐标设置为舞台的x和y坐标,我们必须为x设置-30px,为y设置-70px。在这种情况下,我们必须做一些计算,以便在影片剪辑中对我们的对象进行正确控制,以便我们做什么。
我为你创造了一个例子。请检查一下:
如果您希望在舞台调整大小时对象保留在舞台上,则必须将舞台的“缩放模式”更改为 无比例 和“对齐”的舞台 “左上角” 如下:
import flash.display.StageScaleMode;
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
然后,您必须在舞台上添加“调整大小”事件。
import flash.events.Event;
stage.addEventListener(Event.RESIZE, stage_Resize);
function stage_Resize(event:Event):void
{
enter your codes here
}
通过添加Resize事件,当最终用户调整舞台大小时,将触发Resize事件中的代码。
请查看以下示例: