今天把这个帖子编辑一下吧。还是老样子,我先稍微讲讲什么叫做Accumulate Buffer以及如何用Flash实现这个东西并且达到效果。
一 . Accumulate Buffer: 其实是在图形处理中用的非常多的一中缓存,它负责将帧渲染之后进行保存,并在以后的处理中反复使用。它可以实现诸如 motion blur(动态模糊)、anti-alias(抗锯齿)等很玄的效果。这个介绍构简单吧。
二. 切入正题,咱们用Flash 8.0来模仿Accumulate Buffer来实现一下很帅的blur效果吧,最后效果看上去可以像media player里面的视觉效果一样哦!下面跟着我做。
1. 新建一个Flash文档,随便起个名字。
2. 在舞台上面随便做一个会动的MovieClip,最好简单点,我们就可以继续了,这里我用了几个简单的补间做了一个运动的棍子。
3. 回到最外层,给这个movieClip起名stick,然后新建一层,在新建的层的第一帧写入actionScript, stick._visible=false; 因为我们不想让球直接渲染到画面而是让他进入Accumulate Buffer,完成之后因该是这个样子 [step1]
4. ctr+enter,测试一下,我们应该看不到那只球。好,然后在ball._visible=false;下面开始我们的正文。

5. 在ball._visible=false那一段补充为:
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.*;
stick._visible=false;
var accumulateBuffer = new BitmapData(550,400,false,0xff000000);//使用这些参数创建一个BitmapData对象
attachBitmap(accumulateBuffer,1);//将accumulateBuffer放到舞台上,不然我们怎么能够看到效果呢
function onEnterFrame(){
accumulateBuffer.draw(stick);//每到一帧将目标movieClip画到accumulateBuffer上。
}好啦,我们的第一步完成啦,Ctrl+Enter测试,我们已经可以看到一个MovieClip被连续画到一个AccumulateBuffer上的样子了。恩...只是不怎么好看,下面是完成了第一步的源文件:
点击这里下载源文件