【问题标题】:Make mask visible in ActionScript 3.0使遮罩在 ActionScript 3.0 中可见
【发布时间】:2010-02-21 19:23:53
【问题描述】:

我有包含已加载 swf 的 Loader 对象。我不知道这个 swf 的形状是什么样子的——它不一定是矩形的。

我想在它上面添加一些光反射。我需要用 Loader 掩盖这种反射,但同时我需要让这个 Loader 可见。

我不想加载 swf 两次,因为它可能包含一些动态的、脚本生成的内容,这会在每个 Loader 中产生不同的结果。

这是一个很大的问题,不是吗?有什么想法吗?

图片:http://www.freeimagehosting.net/uploads/12e6b9cd63.jpg

【问题讨论】:

    标签: actionscript-3 visibility mask


    【解决方案1】:

    您可以将加载的 swf 的实例添加到舞台,并为反射使用相同的影片剪辑/精灵并将其绘制到新的 BitmapData。进行所需的转换,然后添加到阶段。

    或者想象以下情况,而不是让加载的 swf 将其自己的图形添加到库中,您可以从加载应用程序中执行此操作,例如,将 MyDisplayObject 的实例名称提供给加载的 swf 中的影片剪辑,然后导出到动作脚本。加载 swf 后,您可以使用以下代码访问库,因此您可以根据需要多次添加此对象,在您的情况下为 2。

    这里是代码(来自 adobe live docs)

    function initHandler(e:Event) {
    var applicationDomain:ApplicationDomain = e.target.applicationDomain; // e.target is the loaderInfo object
    var testClip:Class=applicationDomain.getDefinition("testClip") as Class;
    var clip = new testClip();
    addChild(clip);
    var reflection = new testClip();
    addChild(reflection);
    reflection.y= 100;
    }
    

    希望这能让你走上正轨。

    【讨论】:

    • 我不确定你是否理解正确。我已经发布了显示我正在谈论的情况的图像。我希望它能解决所有的疑问。
    • 上述答案可能仍然有帮助。您仍然需要视觉对象的两个副本,然后可以将第二个副本用作要放置在第一个副本上的反射效果的蒙版。
    • 我可以对您的问题有所帮助,但是我看不到您上传的图像,您能再上传一次吗? (www.freeimagehosting.net 接缝向下)
    猜你喜欢
    • 2011-02-26
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多