代码改变世界

遮罩与动态文本框

2008-01-29 11:20  Windie Chai  阅读(1368)  评论(0)    收藏  举报
今天在写一个Flash相册时遇到一个奇怪的问题,MovieClip中的动态文本框无论如何都不显示。通过trace语句可以确定该文本框是有值的,也就是说,这个动态文本框存在并且有值。
既然如此,为什么不显示呢?原来罪魁祸首就是:遮罩。
为了实现一些效果,这个相册中使用了遮罩,而包含动态文本框的MovieClip所在的层也正好受遮罩所影响。虽然动态文本框所在的区域也处于遮罩的覆盖范围,但不知道是Flash的bug还是什么原因,在设计时被遮罩直接或者间接覆盖的动态文本框最终就变成了不可见状态。想要让其显示出来,就不能在设计时设计遮罩,而是在运行动态生成遮罩。
下面是Flash相册中设计时添加遮罩的图层情况:

现在需要将其变成下面的状态,也就是取消原来遮罩层的“遮罩”状态:

然后在帧动作中添加下面的方法为Album(MovieClip)动态添加遮罩:
this.Album.setMask(this.Masker);