Flash 如何有选择地掩盖舞台的某些部分?

Flash 如何有选择地掩盖舞台的某些部分?,flash,actionscript-3,actionscript,mask,Flash,Actionscript 3,Actionscript,Mask,我正在制作flash游戏,我把舞台蒙上了面具,所以你的角色只能看到其中的一部分。然而,我不希望整个舞台都被遮住,我只希望“游戏区”被遮住。想象一下我的舞台是800x800。然而,“游戏”只占据顶部800乘600的区域。底部有200px,当你的角色在游戏区域走动时,我可以用它来聊天或显示信息 问题是,我设置了我的面具,它遮住了舞台上的一切。即使我在“游戏区”之外有东西,它仍然隐藏在面具后面。所以我的问题是,在我的flash应用程序中,如何在“游戏区域”中使用我的掩码,而不影响应用程序的其他部分?我

我正在制作flash游戏,我把舞台蒙上了面具,所以你的角色只能看到其中的一部分。然而,我不希望整个舞台都被遮住,我只希望“游戏区”被遮住。想象一下我的舞台是800x800。然而,“游戏”只占据顶部800乘600的区域。底部有200px,当你的角色在游戏区域走动时,我可以用它来聊天或显示信息

问题是,我设置了我的面具,它遮住了舞台上的一切。即使我在“游戏区”之外有东西,它仍然隐藏在面具后面。所以我的问题是,在我的flash应用程序中,如何在“游戏区域”中使用我的掩码,而不影响应用程序的其他部分?我可以有选择地将物品放在面具上方吗

谢谢大家!

编辑:澄清。我的游戏从初始化GameScreen对象开始:

game = new GameScreen(); //800 x 600.  Declared as class variable
game.y = 40;
addChild(game);
在此之前,为了使面具全黑,我在游戏屏幕后面放了一个黑色矩形:

var rect:Shape = new Shape();
rect.graphics.lineStyle(1, 0x000000);
rect.graphics.beginFill(0x000000);
rect.graphics.drawRect(0,0,800,600);
rect.graphics.endFill();
rect.y = 40;
addChild(rect);

///
/// Start the game
///
game = new GameScreen();
game.y = 40;
addChild(game);
当GameScreen对象初始化时,它会创建一个“洞”,以便您可以看到您的角色

fogOfWar = new CircleMask();
                addChild(fogOfWar);
                this.mask = fogOfWar;
                fogOfWar.x = player.x;
                fogOfWar.y = player.y;
现在,我们有了我的游戏设置,面具上有一个圆孔,玩家可以看到他的角色。但是,当游戏屏幕对象初始化时,它会在屏幕上放置一个信息栏。此信息栏也会被遮罩隐藏。玩家看不见它。问题是,我希望这个条(以及稍后添加的其他组件)始终对玩家可见。我不能简单地通过面具改变“洞”的形状,因为它会随着玩家移动。那么,我怎样才能让玩家在仍然隐藏游戏区域的情况下看到该信息栏呢


再次感谢你

要获得更符合上下文的答案,您应该提供用于创建掩码的代码示例

这清楚地解释了如何在AS3中创建编程掩码

从我所能收集到的信息来看,你的面具就在舞台上,它需要应用到另一个
DisplayObject
上才能发挥作用。此时,遮罩将随着
DisplayObject
四处移动,因此您可以将东西放在前面、后面或任何您喜欢的地方


此外,如果您的掩码剪辑为空,它将屏蔽链接到的整个
DisplayObject
,为了允许内容通过它显示,它需要在其中绘制一个合适的形状,然后内容将通过该形状显示。

您的演示只会显示一个绿色屏幕,并且每个标题都将
[错误]
显示为其值。请阅读有关遮罩的博客文章,您需要将其应用于要遮罩的对象,并且应将其放置在显示列表中该对象的前面。