是否可以在动画片段上的特定图层上绘制精灵?
我有一个我在Flash设计器中创建的MC,它有3层,背景,一些布局,然后是一些文本。在actionscript中,我在代码中创建了一个Sprite对象,在其上绘制了一个矩形,并使用addChild将其添加到舞台中(在MC中调用)
问题是,精灵总是被绘制在我在设计师中添加的所有布局内容之上。
有没有办法将精灵添加到特定图层的MC?在这种情况下是背景图层。
我尝试更改精灵上的z并没有效果。
答案 0 :(得分:2)
更改“z”是一个不错的尝试,但它什么都不做。
实际上,所有影片剪辑都按特定顺序堆叠。绘制时,按顺序完成,就像一个用新图形覆盖图形的画家。更改“z”值将更改该影片剪辑的感知深度,但不会更改影片剪辑的绘制顺序。由于您的精灵位于所有影片剪辑的顶部,因此即使您更改“z”,它也将始终是最后一个。
使用ActionScript时,“图层”实际上并不存在。这是一个仅通过Flash Professional提供的概念。最后,Flash Professional会在addChild()请求中转换其图层。
因此,您可以使用addChildAt()方法放置新的影片剪辑。索引值为0时,新影片剪辑将绘制在所有其他影片剪辑下方,而不是顶部。
您必须找到引用的影片剪辑的索引(例如,通过在Flash Pro中为其指定实例名称,“引用”),以便您可以使用“getChildIndex(reference)”检索其索引。然后,您可以使用addChildAt()将新影片剪辑设置在此索引的顶部或下方。如果您设置与参考影片剪辑相同的索引,它将在其下方。
另一种技巧可能是创建一种虚拟影片剪辑(“虚拟”),您在Flash Professional中设置一个层,然后使用“dummy.addChild()将新影片剪辑添加到此虚拟影片剪辑中”
如果要通过ActionScript在一个“图层”中重新组合多个图形,以便使用addChildAt()在显示列表中上下移动组,可以将它们添加到Sprite对象中,然后移动Sprite。 / p>
答案 1 :(得分:1)
将舞台上的所需对象转换为动画片段。这些动画片段可能位于不同的图层上。然后使用函数setChildIndex(),swapChildrenAt()和 getChildIndex()实现所需的效果。如果你告诉我代码,我可以发表更多评论。有关这些功能的更多细节可以在
找到另请查看http://www.flashandmath.com/intermediate/depths/index.html
答案 2 :(得分:0)
使用addChildAt(sprite,index); 该索引处的对象将上升一级。