flash - 在层之间绘制 Sprite

标签 flash actionscript-3

是否可以在动画剪辑的特定图层上绘制 Sprite ?

我有一个在 Flash 设计器中创建的 MC,它有 3 层:背景、一些布局内容,然后是一些文本。在actionscript中,我在代码中创建了一个Sprite对象,在其上绘制了一个矩形,并使用addChild将其添加到舞台(从MC内调用)

问题是, Sprite 总是在我在设计器中添加的所有布局内容之上绘制。

有没有办法将 Sprite 添加到MC的特定层?在本例中为背景层。

我尝试更改 Sprite 上的 z,但没有效果。

最佳答案

更改“z”是一个不错的尝试,但它不会起任何作用。

实际上,所有影片剪辑都是按特定顺序堆叠的。当绘制时,它是按照这个顺序完成的,就像画家用新的图形覆盖图形一样。更改“z”值将更改该影片剪辑的感知深度,但不会更改影片剪辑的绘制顺序。由于您的 Sprite 位于所有影片剪辑的顶部,因此即使您更改“z”,它也始终是最后一个被绘制的 Sprite 。

使用 ActionScript 时,“层”实际上并不存在。这是一个只能通过 Flash Professional 实现的概念。最后,Flash Professional 在 addChild() 请求中转换其图层。

因此您可以使用 addChildAt() 方法放置新的影片剪辑。如果索引值为 0,新的影片剪辑将绘制在所有其他影片剪辑的下方,而不是顶部。

您必须找到引用影片剪辑的索引(例如,通过在 Flash Pro 中为其指定实例名称“reference”),以便可以使用“getChildIndex(reference)”检索其索引。然后,您可以使用 addChildAt() 将新影片剪辑设置在此索引的顶部或下方。如果您设置与引用影片剪辑相同的索引,它将位于其下方。

另一种技术可能是创建一种虚拟影片剪辑(“dummy”),将其设置在 Flash Professional 的图层中,然后使用“dummy.addChild()”将新影片剪辑添加到该虚拟影片剪辑中”。

如果您想通过 ActionScript 将多个图形重新组合在一个“层”中,以便使用 addChildAt() 轻松地在显示列表中上下移动组,您可以将它们添加到 Sprite 对象中,然后移动 Sprite。

关于flash - 在层之间绘制 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7005758/

相关文章:

apache-flex - 如何删除 BitmapData 对象中的区域?

Flash Builder 4.5 调试器终止 |苹果浏览器

macos - OS X Webview 不显示 Flash 视频

list - Flex4列表项双击事件

actionscript-3 - 第二次读取字节数组出错?

flash - 将参数传递给事件监听器/处理程序

flash - AS3错误#2044 : Unhandled error: whilst using URLLoader even with IOErrorEvent event listener

actionscript-3 - 在AS3中展开var args

flash - 开始使用 ActionScript 2.0 或 3.0 的文本输入和动态文本字段

java - 生成唯一的随机数并检查重复项