1

我需要在另一个精灵上放置一个透明精灵。覆盖的精灵将接受一些鼠标事件。当用户将鼠标移到上部精灵上时,将绘制一条曲线。处理完成后,它将在基础精灵上绘制(并在上部擦除)。

我现在的想法是放置精灵,绘制一个大小等于精灵大小的矩形并将 alpha 设置为 0。

问题有点转储:也许建议的解决方案不是最好的。有没有更好的方法来设置宽度和高度(据我所知Sprite.width = w;无济于事)?

先感谢您!

4

1 回答 1

4

您不能直接设置尺寸,但可以在该 Sprite 上绘制。所以你可以这样做:

graphics.beginFill(0,0); // zero alpha fill
graphics.lineStyle(0,0,0); // invisible lines
graphics.drawRect(0,0,width,height);
graphics.endFill();

这样,您的 Sprite 可以将其 alpha 保持在 1,以不隐藏任何其子项。然后,无论您决定在该 Sprite 中绘制什么曲线,您都可以通过 graphics.moveTo 和 graphics.lineTo 在子 Shape 对象中绘制。

更新:根据下面的评论,将 alpha 设置为 0 不适用于较新的 Flash 播放器版本,因此 alpha 应设置为非零值,以便事件在重叠精灵上注册。

graphics.beginFill(0x808080,0.01); // almost zero alpha fill
于 2012-09-27T17:57:12.973 回答