在我的 AS3/Flash Player 10 应用程序中,我在舞台上有一个影片剪辑,并配置了自己的 transform.perspectiveProjection
属性;特别是,我明确设置了它的 projectionCenter
,以便它有自己的消失点(有关详细信息,请参阅 this question)。我正在向我的应用程序添加功能,以便如果用户单击转换后的影片剪辑周围的按钮之一,灯箱样式的图层就会出现在 3D 转换的影片剪辑上。
我遇到的问题是,当灯箱图层出现时,变换后的影片剪辑的位置/变换会发生明显的变化,而当灯箱图层被删除时,变换后的影片剪辑将返回到其原始位置。更奇怪的是,这种效应只发生了大约一半的情况;通常,前几个灯箱调用没有效果,但第三个或第四个调用会导致 3D 影片剪辑跳转。
没有 3D 元素是 lightbox 的一部分(即没有明确设置 z 索引),而且我在其他地方找不到这种现象的文档。这是 FP 10 中的错误吗?如果是这样,我能想到的唯一解决方法是将 3D 转换的影片剪辑的快照作为 bitmapData
并在灯箱出现时显示它来代替 3D mc,但这似乎效率低下且残酷黑客式的。有什么想法吗?
最佳答案
这里有一个猜测 - 添加的内容是否可以位于显示层次结构中,以便它们最终位于与 3D 内容相同的位图缓存中?您可能知道,Flash 通过在内部将对象绘制为位图,然后对位图进行过滤来实现所有位图效果,其中包括 3D 透视失真。我的猜测是,当您将内容添加到显示对象中时,光栅化区域的边界会发生变化,并且会导致 3D 对象的像素化方式发生变化。再说一次,这只是一个猜测,但您可以尝试一下,看看这是否是罪魁祸首。
关于flash - 功能还是错误? Flash Player 10 中的 3D 视角随着对象添加到舞台而变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2147162/