我正在处理大约 20 个在 3D 空间中移动的对象。Adobe 建议“使用 Matrix3D 对象重新排序显示”:
使用 Transform 对象的 getRelativeMatrix3D() 方法获取子 3D 显示对象的相对 z 轴。
使用 removeChild() 方法从显示列表中删除对象。
根据显示对象的相对 z 轴值对显示对象进行排序。
使用 addChild() 方法以相反的顺序将子项添加回显示列表。
伟大的。如果物体不移动,那很好。但是,如果发生动画并且在 z 空间中一个对象出现在另一个对象的前面怎么办?对象根据显示列表中的位置显示,而不是根据它们的 z 顺序。如何让对象在制作动画时尊重 z 顺序(如果对象 A 的 z 值变得小于对象 B,则使对象 A 出现在对象 B 的前面)?显然,您无法在动画期间清除显示列表。