2012-07-31 73 views
0

我试图创建一个柠檬汁和苏打粉的实验动画,我想知道我怎么可以创建一个发泡的效果,如本图所示的一个:如何在闪光灯中创建起泡或气体效果?

experiment

的想法,我有记住是简单地在Photoshop中绘制泡沫,然后使用补间动画来改变大小。我希望能找到更好的解决方案。

+0

为了获得更好的效果,您需要对使用“BitmapData”和应用滤镜或其他内置效果有很好的理解。 – Marty 2012-07-31 05:42:52

回答

1

我有些东西有点类似,你可以用它做跳板来做自己的事情。

http://www.shaunhusain.com/SteamEffect/

http://www.shaunhusain.com/SteamEffect/srcview/index.html

目前我只是画一些圈本,然后设置他们(不是非常有效的模糊,但我知道它服务的旨意,因为我没有它需要创造一个bajillion粒子仍然是有效的“蒸汽”,这是预期的目标)。你可以换出我用于自己绘图的形状/过滤器,并使用相同的基本结构。

编辑

也许这至少需要一点解释:

基本上你会想看看这两个文件SteamCanvas.mxml和BitOfSteam.as。说实话,我不知道为什么我决定将SteamCanvas编写为mxml文件。我选择使用Canvas作为基类,因此我可以将它作为容器包装在任何其他组件中,并能够检测区域内任何地方的鼠标点击。如果这是在纯Flash环境中使用的,那是一个不使用Flex库(或mxmlc编译器)的环境,它可以改为从Sprite扩展并纯粹在AS3中编写,实质上只需将creationComplete代码移动到构造函数。这是如何工作的,SteamCanvas是你想要放入的任何控件或组件的包装器(就像普通的画布使用绝对定位一样,但如果需要的话,可以有定义嵌套的布局的容器)。 SteamCanvas设置一个计时器,如果计时器滴答时鼠标关闭,它会创建BitOfSteam的实例,并根据SteamCanvases自己当前设置的属性设置蒸汽属性。在这个项目中,你还会看到一个SteamEffectTest.mxml,它就是你看到的运行的文件,它上面有滑块来改变SteamCanvas的属性,我用它们来提出我认为是有价值的东西逼真的蒸汽。如果我记得我明天会再次访问这个组件,并尝试采用Marty的建议来更新它。

+0

这很好 - 你会有一个很大的性能提升,只需要一些小小的调整,包括使用'copyPixels()'将圆圈绘制到BitmapData上,然后使用'applyFilter()'。 – Marty 2012-07-31 05:50:21

+0

这些代码为网站或闪光?对不起,我对这些东西有点新。 – Learn123 2012-07-31 05:51:32

+0

srcview文件夹由FlashBuilder生成,当我执行发布导出并请求它包含查看源选项时。当你按照左下方的链接时,它有一个链接来下载源zip,如果你有FlashBuilder,你可以下载项目的zip并直接导入它。否则,使用左侧的导航浏览代码。如果你不熟悉Flex,MXML将是新的,但是当它归结为MXML时,编译器会将MXML转换为AS3。我在这里所做的主要是在AS3中,但也可以在Flash IDE中使用。 – shaunhusain 2012-07-31 05:54:28