0

我想要我的“舞台”或文档或其他任何名称的完整尺寸。我刚开始使用闪光灯,我一直在寻找没有成功。

我最接近的是“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);
    }
} 
4

1 回答 1

2

您应该使用“stage.stageWidth”作为舞台宽度或“stage.stageHeight”作为舞台高度。

请记住,如果您在 Flash 项目中使用嵌套影片剪辑,并且想要控制其中的一些对象;包含设置为零值的对象的影片剪辑的 x 和 y 坐标更好;如果 x 和 y 坐标设置为另一个值,您必须找到一些计算来实现您想要做的事情。

如果您想了解 stage.stageWidth 和 stage.width 或 stage.stageHeight 和 stage.height 之间的区别,请查看以下链接:

调用stage.width和stage.stageWidth之间的区别?

stage.width 和 stage.stageWidth 的区别

为了更好地理解,我用一个例子来描述它。

想象一下,我们有一个宽度为 1024 像素,高度为 768 像素的舞台。我们在舞台上以 30px x 和 70px y 坐标创建一个影片剪辑元件。现在我们在该影片剪辑中添加一些内容并将 x 和 y 坐标设置为零值。如果我们回到根时间轴(主舞台),影片剪辑的对象设置在 30px x 和 70px y 坐标而不是 0。如果我们想将对象的 x 和 y 坐标设置为舞台的 x 和 y 坐标,我们必须为 x 设置 -30px,为 y 设置 -70px。在这种情况下,我们必须进行一些计算,以正确控制影片剪辑中的对象,以实现我们想要做的事情。

我为你创建了一个例子。请检查一下:

物体运动

如果您希望您的对象在舞台调整大小时保留在舞台上,您必须将舞台的“Scale Mode”更改为No Scale,并将舞台的“Align”更改为“Top Left”,如下所示:

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 事件中的代码。

请检查以下示例:

4Shared -> 调整大小示例

SendSpace -> 调整大小示例

于 2013-07-15T08:42:57.593 回答