目前我遇到了AS3的问题。
我试图绘制一个非常长的图像,其大小超出了舞台的范围。问题是超出舞台范围的部分仍将被绘制,所以当我使用flash或网页测试我的程序时,结果看起来不太好。
我将舞台大小设置为960乘640,但仍然绘制超过960和640(甚至x <0 y <0)的部分。
有没有办法隐藏超出范围的部分,只能在预定义阶段的范围内绘制东西?
根据我的理解,舞台的宽度和高度应该是唯一可见的范围,但我不知道为什么仍然可以看到超出这个范围的东西。
顺便说一句,我正在使用FlashDevelop。
非常感谢。
答案 0 :(得分:1)
这在很大程度上取决于您是采用仅代码方法还是使用IDE。
IDE方法:在Flash Professional中,在舞台的时间轴上创建一个新图层。放置一个与该图层中的舞台大小完全相同的矩形。现在,右键单击图层并选择“Mask”。锁定图层。
现在,确保舞台时间轴上的所有其他图层都位于该蒙版下方。将图层拖动到蒙版下方,使其在蒙版下方的列表中略微缩进。
代码方法:(代码来自How to create masks in AS3?。为Sappy和Nebu干杯代码。)
var maskShape:Shape = new Shape();
maskShape.graphics.beginFill(0x0);
maskShape.graphics.drawRect(0, 0, 960, 640);
maskShape.graphics.endFill();
addChild(maskShape);
maskShape.x = 0;
maskShape.y = 0;
thingToMask.mask = maskShape;
maskShape.visible = false;