【问题标题】:AS3 - drawings exceeds stage rangeAS3 - 图纸超出舞台范围
【发布时间】:2014-01-12 07:57:38
【问题描述】:

目前我遇到了 AS3 的问题。

我试图绘制一个非常长的图像,它的大小超出了舞台的范围。问题是超出舞台范围的部分仍然会被绘制,所以当我使用 Flash 或在网页上测试我的程序时,结果看起来不太好。

我将舞台大小设置为 960 x 640,但超出 960 和 640(甚至 x

有没有办法隐藏超出范围的部分,只在预定义的阶段范围内绘制东西?

据我了解,舞台宽度和高度应该是唯一可见的范围,但我不知道为什么仍然可以看到超出此范围的东西。

顺便说一句,我正在使用 FlashDevelop。

非常感谢。

【问题讨论】:

  • 嗯。回到 Actionscript 1 时代,人们确实在舞台的可见部分之外绘制(放置)对象,并且浏览器 Flash 窗口并没有搞砸网页。我说不用担心,但要在网页中正确分配舞台尺寸以进行发布。
  • 您是否正在查看嵌入在 html 文件中的内容?如果你是,这应该不是问题。

标签: actionscript-3 draw stage


【解决方案1】:

这很大程度上取决于您是采用纯代码方法还是使用 IDE。

IDE 方法:在 Flash Professional 中,在舞台时间轴上创建一个新图层。在该层中放置一个与舞台大小完全相同的矩形。现在,右键单击图层并选择“蒙版”。锁定图层。

现在,确保舞台时间轴上的所有其他图层都位于该遮罩下。将图层拖到蒙版下方,使其在蒙版下方的列表中略微缩进。

代码方法:(代码来自 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;

【讨论】:

  • 非常感谢!!该解决方案(代码方法)刚刚解决了我的问题。
猜你喜欢
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2018-07-30
  • 1970-01-01
相关资源
最近更新 更多