是的,所以这就是场景:我有4个对象,A,B,C和D.我想要的是C模糊A,但不是B.同样,我希望D模糊B,但不是A.和B可以按任何顺序相互重叠,没关系。
换句话说,我想要的是一个物体(C)能够覆盖一个物体(A)但不能覆盖另一个物体(B),即使它与它接触。与D相同,即使它与之接触,也可以覆盖B而不是A.问题在于我无法想到允许这样的图层配置:D总是高于A和B,因此会使两者都模糊不清。
我不希望任何人想出一些不可思议的聪明配置,但我想知道是否有某种ActionScript可以做到这一点。特别是,我希望A和B是动态TextFields,C和D是任何形状的MovieClip(即不是矩形)。
希望这是可能的!
答案 0 :(得分:2)
将它们添加到舞台的顺序决定了在什么前面显示的内容。基本上,最后添加的内容都在顶部,最先添加的是底部。
如果您希望C覆盖A而不是B和D覆盖B而不是A,则表示您遇到问题。想想如果所有四个相互重叠会发生什么。 C会尝试覆盖A并让B显示出来,而D会尝试覆盖B并让A显示出来。不可能。
答案 1 :(得分:2)
你可以使用blitting,你实际上并没有将项添加到舞台上,而是使用copyPixels()或draw()来绘制像素。如果您这样做,那么您可以确定将要或不会绘制对象的哪些部分。查看此博客文章,了解该技术的概述http://www.developria.com/2010/02/dealing-with-bitmapdata.html。
答案 2 :(得分:0)
假设我理解了你想要的内容,请使用父/包含MovieClip的setChildIndex()
函数。如果所有ABCD对象都包含在名为parent_mc的MovieClip中,您可以执行以下操作:
parent_mc.setChildIndex(a_mc, parent_mc.numChildren-1); // Throw "a_mc" on top
parent_mc.setChildIndex(b_mc, parent_mc.numChildren-1); // Throw "b_mc" on top
此问题导致b_mc
位于a_mc
等之上......
你还可以在显示列表的最底部扔一些东西:
parent_mc.setChildIndex(b_mc, 0);