在AS3中有没有办法访问舞台的最后一个渲染?这个渲染结果是否可以在某处访问?我特意无法将舞台自身重新渲染为Bitmap,因为这太贵了,这就是为什么我要尝试使用最后一个渲染。
我需要这个,因为我试图在屏幕的某些特定范围内做一些热变形效果,而在2D中执行此操作的标准方法是使用位移贴图来抖动原始图像。当然,我愿意接受其他想法在Flash中做热变形。
答案 0 :(得分:2)
我很确定我们无法访问此内容(虽然我不明白为什么)。我知道flash只会重新绘制帧与帧之间的变化。您可以通过右键单击Flash Debug Player并选择“Show Redraw Regions”来查看。
您可以尝试使用Convolution Filter和Displacement Map Filter查看人们在做什么。以下是一些例子:
虽然它们的舞台尺寸非常小,但是这些示例似乎运行良好,速度很快。
答案 1 :(得分:1)
我99.9%肯定你不能。我以前从来没有提到任何提及。虽然会是一个很棒的功能。对不起,我知道这不是特别有帮助。
答案 2 :(得分:1)
您无法访问栅格,但有一种解决方法。
不要将应用程序Sprite(或MovieClip)放在舞台上,而是将应用程序精灵绘制到位图上并将其放在舞台上。这种方式只渲染一次,但可以从最后一次渲染中访问位图。
缺点是Flash会渲染所有应用程序精灵每一帧(而不仅仅是脏矩形)。
答案 3 :(得分:1)
如果您不介意需要Flash Player 10,可以尝试自定义 Pixel Bender过滤器附加到您想要扭曲的舞台或DisplayObject。
但是,如果Flash在封面下创建缓存位图,就像对标准滤镜一样,那么性能将不会比创建自己的位图更好。