我在这里搜索了类似的东西,但没有找到任何关于发生了什么的线索。
我有一个带有时间线的Movie Clip对象,它有3个层:一个在最后一帧停止时间线的层,一个带有遮罩属性的常规绘图的层,以及一个包含名为' target‘的目标电影剪辑的层,该层被上面的层遮罩。
这幅画非常简单,甚至不是电影剪辑,而是矢量绘图。它应该只在遮罩层有一些绘图的区域上显示目标电影剪辑,对吗?
所以,我创建了一个方法来加载图像,监听完整的已加载事件,并将图像添加到目标蒙版电影剪辑,但它在第一帧后消失!如果我删除带有蒙版图形的图层,效果会很好。有什么线索吗?
以下是代码的一个较小版本。提前谢谢。
package
{
import flash.display.*
import flash.events.Event;
import flash.net.URLRequest;
public class Main extends MovieClip
{
public function Main()
{
var loader:Loader = new Loader()
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, listenComplete)
loader.load(new URLRequest('img.jpg'));
}
private function listenComplete(e:Event)
{
target.addChild(e.currentTarget.content)
}
}
}发布于 2011-05-23 23:17:58
好吧,我得到了一个解决方案--不完全是我想要的,但它是一个很好的解决方案。
我用这幅画创建了一个新的电影剪辑,命名为'maskTimeLine‘,并粘贴了所有的帧,最后是一个停止,并将其保留为常规图层。然后我在“目标”层上面的层上实例化了它,去掉了额外的帧(现在属于maskTimeLine对象)并再次尝试,这次在target.addChild方法之后添加了target.mask = maskTimeLine。
它起作用了!:)
我相信Flash在有时间线的遮罩下面的层上使用addChild会有一些麻烦(就是这样,这些情况在一起。我已经对动画电影剪辑做了很多'addChild()‘,并在蒙版下面添加了子层,但从来没有在同一个对象中做过这两件事。
我希望这对其他人也有帮助。感谢大家抽出宝贵的时间!
发布于 2011-12-30 14:48:01
我有同样的问题,但解决了它。3层:
层1(影片剪辑的顶层)是蒙版。第二层是被屏蔽的内容。第3层是一个非屏蔽层。
然后,我在运行时动态添加了一个元件/影片剪辑。不会出现的。自动被第一层蒙版遮罩。
为了解决这个问题,我在其他3个层之上创建了一个空白层,然后在这个层上添加了一些东西。如果您不向该层添加某些内容,则会忽略空层,并且问题仍然存在。但是,一旦你在上面添加了另一个层,并在上面放了一些东西,Flash就会把你的动态内容放到最上面的/未遮罩的层上。
韦雷德。
发布于 2011-05-21 06:49:14
这就像是接下来的。
抱歉,没有时间测试代码,但其中一个是正确的。
target.addChild(loader.contentLoaderInfo);
or
target.addChild(loader.content);
or
target.addChild(loader);
or
// event targeting
target.addChild(e.currentTarget.contentLoaderInfo)
or
target.addChild(e.currentTarget);https://stackoverflow.com/questions/6076276
复制相似问题