我正在尝试在ActionScript 3中做一个圆形的蒙版(我使用的是Flex框架)。这与生态足迹有关,每个圆圈代表一个地球。这张生态足迹图片是在一个容器内。问题是,尽管图像是浮动的,但掩模似乎是固定的。当我向下滚动容器时,图片会滚动得很好,但蒙版不会,裁剪掉图片的顶部。我已经将这个和其他UIMovieClip放在一个VBox容器中。该VBox容器位于另一个VBox容器中。如果我将fomer容器放在后者的底部,则遮罩将不会随之而去,因此圆圈不会被遮罩。
mask = new UIMovieClip();
mask.graphics.beginFill(0xFFFFFF);
mask.graphics.drawRect(radius,radius+radius*2*(1-(ecoWeight-Math.floor(ecoWeight))),1000,1000);
mask.graphics.endFill();
earth = new UIMovieClip();
earth.graphics.beginFill(0xFFFFFF);
earth.graphics.drawCircle(radius,radius,radius);
earth.mask=mask;
earth.graphics.endFill();发布于 2009-12-07 09:11:00
面具很糟糕,而且经常不能达到人们对它们的期望。在与BlendMode.LAYER结合使用时,我对BlendMode.ALPHA的使用要幸运得多。
发布于 2009-12-07 18:19:30
将掩码添加到VBox容器:
myVBox.addChild(mask);或者将遮罩和形状都放入容器中,然后移动容器:
var bundle:Sprite = new Sprite();
mask = new UIMovieClip();
...
earth = new UIMovieClip();
...
bundle.addChild(mask);
bundle.addChild(earth);
myVBox.addChild(bundle);
bundle.x = 100;
bundle.y = 100;这将地球和面具固定在一起。我不熟悉UIMovieClip,但我想你可以用UIMovieClip代替雪碧。对于第一个问题,这是一个更好的解决方案,因为如果你不把它们捆绑在一起,那么如果你移除了地球,你就不太可能记得移除面具。
希望这能有所帮助。
发布于 2009-12-07 09:16:47
我不知道Flex,我使用闪存CS3,但尝试添加一个事件侦听器来重新定位掩码。另外,试着确保你按正确的顺序做事情。应用掩码,然后将所有内容放入第二个VBox中。换句话说,我(有限的)使用Actionscript的经验告诉我,年表很重要。
另外,要确保所有的变量都有正确的目标。在Flash CS3中(同样,我可能会说胡言乱语),如果你点击一个包含子元素的MovieClip,而你没有特别关闭对子元素的鼠标,父元素就不会注册事件。
祝好运!
https://stackoverflow.com/questions/1857222
复制相似问题