在Flash中获取最后渲染的屏幕光栅
在AS3中是否有方法访问舞台的最后一次渲染?渲染结果是否缓存在可访问的位置?我特别不能自己将舞台重新渲染为位图,因为这太昂贵了,这就是我尝试使用最后一次渲染的原因在Flash中获取最后渲染的屏幕光栅,flash,actionscript-3,rendering,Flash,Actionscript 3,Rendering,在AS3中是否有方法访问舞台的最后一次渲染?渲染结果是否缓存在可访问的位置?我特别不能自己将舞台重新渲染为位图,因为这太昂贵了,这就是我尝试使用最后一次渲染的原因 我之所以需要这个,是因为我试图在屏幕的特定范围内进行一些热失真效果,而在2D中进行这项工作的标准方法是使用位移贴图抖动原始图像。当然,我也愿意接受在Flash中进行热变形的其他想法。我99.9%肯定你不能。我以前从来没有听到有人提到过那件事。不过这将是一个很棒的功能。抱歉,我知道这没有什么特别的帮助。我很确定我们没有访问此功能的权限(
我之所以需要这个,是因为我试图在屏幕的特定范围内进行一些热失真效果,而在2D中进行这项工作的标准方法是使用位移贴图抖动原始图像。当然,我也愿意接受在Flash中进行热变形的其他想法。我99.9%肯定你不能。我以前从来没有听到有人提到过那件事。不过这将是一个很棒的功能。抱歉,我知道这没有什么特别的帮助。我很确定我们没有访问此功能的权限(尽管我不知道为什么)。我知道flash只会在一帧到另一帧之间重新绘制舞台的变化。您可以通过右键单击Flash调试播放器并选择“显示重画区域”来查看这一点 你可以试着看看人们在用和做什么。以下是一些例子:
这些示例似乎运行良好,速度很快,尽管它们的舞台尺寸很小。您无法访问光栅,但有一个解决方法 不要让应用程序精灵(或MovieClip)坐在舞台上,而是将应用程序精灵绘制到位图上,并将其放置在舞台上。这样,只能渲染一次,但可以从上次渲染访问位图
缺点是Flash会在每一帧中渲染所有应用程序精灵(而不仅仅是脏矩形)。如果您不介意使用Flash Player 10,您可以尝试定制 附加到要扭曲的舞台或显示器对象的像素弯曲过滤器
但是,如果Flash像为标准过滤器那样在封面下创建缓存位图,那么性能不会比创建自己的位图更好 +1,我担心这一点,不幸的是预渲染对于我的情况不是一个好的选择(非常注重性能)。