Flash 将加载的带有addChild的图像添加到时间轴上的遮罩对象

Flash 将加载的带有addChild的图像添加到时间轴上的遮罩对象,flash,actionscript-3,Flash,Actionscript 3,我在这里搜索了一些类似的东西,但没有找到关于发生了什么的线索 我有一个带有时间线的电影剪辑对象,它有3个层:一个层在最后一帧停止时间线,一个层具有带掩码属性的常规绘图,一个层包含名为“target”的实例的目标movieclip,该实例被上面的层屏蔽 这幅画很简单,甚至不是电影唇,只是矢量画。它应该只在遮罩层有一些图形的区域显示目标movieclip,对吗 因此,我创建了一个方法来加载一个图像,监听完整的加载事件,并将图像添加到目标屏蔽movieclip中,但它在第一帧后消失!如果我用遮罩图删除

我在这里搜索了一些类似的东西,但没有找到关于发生了什么的线索

我有一个带有时间线的电影剪辑对象,它有3个层:一个层在最后一帧停止时间线,一个层具有带掩码属性的常规绘图,一个层包含名为“target”的实例的目标movieclip,该实例被上面的层屏蔽

这幅画很简单,甚至不是电影唇,只是矢量画。它应该只在遮罩层有一些图形的区域显示目标movieclip,对吗

因此,我创建了一个方法来加载一个图像,监听完整的加载事件,并将图像添加到目标屏蔽movieclip中,但它在第一帧后消失!如果我用遮罩图删除图层,效果很好。有什么线索吗

下面是代码的较小版本。提前谢谢

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)

        }

    }

}

这有点像随后发生的事情。
抱歉,没有时间测试代码,但其中一个是正确的

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);

嗯,我找到了一个解决办法——虽然不是我想要的,但这是一个很好的办法

我用这幅画创建了一个新的movieclip,称之为“maskTimeLine”,并粘贴了所有帧,最后有一个停止,并将其作为一个常规层。然后我在“target”层上方的层上实例化了它,去掉了额外的帧(现在属于maskTimeLine对象)并重试,这次在target.addChild方法之后添加target.mask=maskTimeLine

它起作用了!:)

我相信Flash在有时间线的遮罩下面的一层上使用addChild会有一些问题(就是这样,这些情况加在一起。我已经对动画电影剪辑做了很多“addChild()”,也向遮罩下面的层添加了子对象,但从未在同一对象中同时做过这两件事)


我希望这对其他人也有帮助。谢谢大家抽出时间

我也有同样的问题,但已经解决了。3层:

第一层(电影剪辑的顶层)是一个面具。 第二层是被屏蔽的内容。 第3层是非屏蔽层

然后,我在运行时动态地将一个符号/电影剪辑添加到此文件中。不会出现的。自动被图层1遮罩遮罩

为了解决这个问题,我在另外3层的上方创建了一个空白层,然后在该层中添加了一些内容。如果不向层添加内容,则忽略空层,问题仍然存在。但是,一旦你在一切之上添加了另一层并在上面放置了一些东西,Flash就会将你的动态内容放在最顶层/未屏蔽层上


Weired.

加载器对象上的当前目标是contentLoaderInfo,因此最后两个建议可能是错误的。第一个建议也是错误的,因为您无法将loaderInfo对象添加到显示列表中。如果你没有时间提供答案,你肯定是对的,你不应该恭敬地提供答案。你的答案中唯一正确的部分是提出问题的人已经尝试过的东西,如果你已经深入阅读了完整的问题。我不是给你投反对票的人,但我能理解为什么投反对票,你不应该如此随意地回答,因为你通常会给出很好的答案。
target\u mc.addChild(loader)对我有用,这是我见过的最简单最有用的建议,坦克太多了。