如果我有一个精灵,我已经绘制了一些东西,我该如何删除我绘制的部分内容?我最好可以使用drawRect()
一些"alpha = 0"颜料.
但是,我不相信这种beginFill()
方法可以让你设置RGBA颜色(就像你可以bitmapData
).alpha = 0
在图形方法中设置beginFill()
并没有真正做任何事情 - 它只是没有任何东西.
在我的特定用例中,掩码不是一种选择.
此外,呼叫clear()
不是一个好的解决方案,因为它清除了一切.
如果您不需要能够与Sprite下面的任何元素进行交互,那么您可以很好地实现这一点.
去做这个
以您想要的形状创建一个Shape对象并将其cacheAsBitmap
属性设置为true
将您的Sprite cacheAsBitmap
属性设置为true
将blendMode
Shape 的属性设置为BlendMode.ERASE
将Shape添加到Sprite的显示列表中
不幸的是,你不能完全按照你希望用Graphics类做的.虽然擦除可能意味着你绘制了已经用背景颜色绘制的东西,但我猜你希望"将透明度"绘制回到Graphics对象上.使用0的alpha绘制并不是"没有" - 你只是看不到你画的是因为它是完全透明的.
这是使用向量而不是位图的方法."擦除"矢量的一部分意味着您正在创建一个全新的矢量,这将需要一些计算,而不是仅仅将某个像素设置为某个颜色值.图形不提供这样的高级功能,但您可以编写自己的功能来执行此操作.:P
一种解决方法是改为使用位图:
http : //www.actionscript.org/forums/showthread.php3?t = 187857
http://www.actionscripts.org/forums/showthread.php3?t=149021
另一个是考虑你是否可以用不同的方式实现你想要做的事情; 一个适合使用clear()的人.