功能还是错误? Flash Player 10 中的 3D 透视随着对象添加到舞台而发生变化

Posted

技术标签:

【中文标题】功能还是错误? Flash Player 10 中的 3D 透视随着对象添加到舞台而发生变化【英文标题】:Feature or bug? 3D perspective in Flash Player 10 changes as objects are added to the stage 【发布时间】:2011-01-09 23:15:34 【问题描述】:

在我的 AS3/Flash Player 10 应用程序中,我在舞台上有一个动画剪辑,并配置了自己的 transform.perspectiveProjection 属性;特别是,我明确设置了它的projectionCenter,以便它有自己的消失点(有关详细信息,请参阅this question)。我正在向我的应用程序添加功能,这样如果用户单击转换后的影片剪辑周围的按钮之一,就会在 3D 转换的影片剪辑上出现一个灯箱样式的图层。

我遇到的问题是,当灯箱层出现时,变换后的动画剪辑的位置/变换发生了明显的变化,当灯箱层被移除时,变换后的动画剪辑返回到其原始位置。更奇怪的是,这种效果只发生了大约一半的时间。通常,前几个灯箱调用没有效果,但第三个或第四个会导致 3D 影片剪辑四处跳动。

灯箱中没有 3D 元素(即没有明确设置 z 索引),我在其他任何地方都找不到这种现象的文档。这是 FP 10 中的错误吗?如果是这样,我能想到的唯一解决方法是将 3D 转换的影片剪辑拍摄为 bitmapData 的快照,并在灯箱出现时显示它来代替 3D mc,但这似乎效率低下且残酷地骇人听闻。有什么想法吗?

【问题讨论】:

【参考方案1】:

这是一个猜测 - 添加的内容是否可以位于显示层次结构中,以便它们与您的 3D 内容在同一个位图缓存中结束?您可能知道,Flash 通过在内部将对象绘制成位图,然后对位图进行过滤来实现所有位图效果,这包括 3D 透视失真。我的猜测是,当您将内容添加到显示对象中时,被光栅化的区域的边界会发生变化,这会导致 3D 对象的像素化方式发生变化。同样,这是一个猜测,但您可以尝试一下,看看这是否是罪魁祸首。

【讨论】:

准确!我永远不会猜到这是怎么回事,但碰巧的是,出于掩饰的原因,我一直将大部分应用程序缓存为位图。一旦不再需要缓存,我就关闭了缓存,奇怪的行为消失了。非常感谢!

以上是关于功能还是错误? Flash Player 10 中的 3D 透视随着对象添加到舞台而发生变化的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu10.04 firefox 总卡死 换chromium好点,但只要开flash player还是会卡死,也不能用virtualbox了。

如何在Windows Server 2016中启用Adobe Flash Player

adobe flash player应用程序初始化错误

HTML5抢占Flash份额Adobe Flash Player 将无法在 Windows 10 系统中运行

jw_player v.6 使用主flash版本时如何在点击时间栏上进行搜索?

Adobe Air 与 Flash Player 10.1 运行时