Fnk
Fnk 是基于 Actionscript 的可视化创作工具,其概念源自著名的 vvvv 。界面如下图,是不是觉得有点熟悉呢?是的,又是节点—一座艺术与程式之间的桥梁,感性和理性的结合体。
via Mr.doob
Fnk 是基于 Actionscript 的可视化创作工具,其概念源自著名的 vvvv 。界面如下图,是不是觉得有点熟悉呢?是的,又是节点—一座艺术与程式之间的桥梁,感性和理性的结合体。
via Mr.doob
很简单清爽的一个网站,没想到最后做成了一个黑白feel。转场的部分用了一点 Papervision3D,产品点部分属于手工打造。
Title : Mercedes-Benz B-Class Teaser Website
Client : Mercedes-Benz
Agency : Energy SourceArt & Design : ES Neo Team
Motion & Flash : ES Guru Team
HIDIHO!做了一个数字类型和循环运算的效率测试,大家可以自己测试一下结果。基本上for和while效率差不多;++和--运算比+=和-=快;--又比++快。比较倒的是int类型和uint类型在某些计算上居然比Number类型差那么多。
就我个人习惯来说,比较常用for和++。以后出于优化性能考虑,尽量多用--运算符。
此外,合理运用一些二进制运算符也能大幅改进一些计算效率,想成为ActionScript Guru,怎么也得学两手伴身,快到这里和这里学习一下吧。
其他参考:ActionScript 3 optimization techniques
update:使用 a ? b : c 的判断运算也比 if 稍微快上一些(tested by Barncar.com)
主要演示了pv3d新版本的渲染层机制的一些知识点,和BitmapEffectLayer。以下是主要代码:
public function init3D() : void { camera.fov = 55; //设置一个空物体作为两个球体的父对象 dummy = new DisplayObject3D(); //添加灯 light = new PointLight3D(); scene.addChild(light); //添加一个噪波作为贴图 var bitmap : BitmapData = new BitmapData(256, 256, false, 0); bitmap.perlinNoise(64, 64, 2, Math.random() * 3000, false, false, 7, true); //环境贴图需要一个光源 var mat : EnvMapMaterial = new EnvMapMaterial(light, bitmap); var s1 : Sphere = new Sphere(mat, 80, 8, 8); s1.x = 300; s1.z = -100; //使用地球图片做纹理贴图 var s2 : Sphere = new Sphere(new BitmapMaterial(image.bitmapData), 120, 12, 12); s2.x = -400; s2.z = 100; //把球体添加到空物体中 dummy.addChild(s1); dummy.addChild(s2); scene.addChild(dummy); //DisplayObject3D(简称do3d)的层次结构和渲染对应的结构是分开的,接下来设置渲染的层次结构 //默认情况下do3d渲染到viewport.containerSprite中 //containerSprite是一个ViewportBaseLayer对象,继承自ViewportLayer,也是一个Sprite //BitmapEffectLayer原先是Effect分支里的功能,现在整合到Great White里面来了 //把do3d渲染到BitmapEffectLayer可以添加一些Bitmap滤镜效果 var bfx : BitmapEffectLayer = new BitmapEffectLayer(viewport, 500, 500); //ViewportLayer对象必须用addLayer语句添加到containerSprite viewport.containerSprite.addLayer(bfx); //把球体加进bfx层,记住do3d的层次结构和渲染对应的图层结构是分开的 //所以我们不能直接把dummy加进bfx层,这样dummy的子对象是不被一同加入的 bfx.addDisplayObject3D(s1); bfx.addDisplayObject3D(s2); //火焰效果很简单,添加一个效果对象就可以了 bfx.addEffect(new BitmapFireEffect(1, 1, 1, 1)); //effects数组可以索引属于图层的效果对象 bfx.effects[0].flameHeight = 1; //设置bitmap每帧的移动量 bfx.setScroll(4, 3); //出于CPU占用考虑,一般不会用很大的位图来生成效果。一种可用的做法是只把效果渲染到一块较小的区域内 //BitmapEffectLayer.setTracking(do3d)用于让图层跟随某个do3d在屏幕上的位置移动 //但先要允许do3d自动计算自身的屏幕坐标。例如: //s1.autoCalcScreenCoords = true; //bfx.setTracking(s1); //添加遮罩层 var msk : Sprite = new Sprite(); msk.graphics.beginFill(0xFF0000); msk.graphics.drawCircle(0, 0, 250); msk.graphics.endFill(); //containerSprite既然继承自Sprite,那么自然可以用addChild来新增图层 viewport.containerSprite.addChild(msk); //现在在containerSprite下面有两个图层,我们可以设置遮罩 bfx.mask = msk; //添加外边框作为修饰 var frame : Sprite = new Sprite(); frame.graphics.lineStyle(10, 0x222222); frame.graphics.drawCircle(0, 0, 250); viewport.containerSprite.addChild(frame); addEventListener(Event.ENTER_FRAME, tick); }
其他使用BitmapEffect的参考: Sound Visualizer with Papervision3D
ASExpander : making AS3 in CS3/4 easier | BIT-101 Blog.
功能上和Lee Brimelow 的 Snippets 扩展类似,但是简单到只有一段jsfl命令。只需要设置一个快捷键,就可以很快的在Flash CS3/4中插入代码片段。有能力的可以自己改写出适合的内容。
其实Flash的编码环境实在是差得可怜,这些手段也只是补足了代码片段这样一个小功能。真要做开发的还是推荐 FDT 或 Flash Develope 吧。我现在就在用FDT,上手有一定的难度,用熟以后就再也离不开了。

Flash on the Beach (FOTB) 是业内知名的专家论坛会议。本次盛会专家高手云集,精彩纷呈。可惜没有机会亲身参与其中,只好通过互联网来管中窥豹,感受一下国外同行的浓郁学术气氛。
其他与会的专家们:
大会的 Trailer 是 Motion 设计师和导演 The Ronin 的杰作。主要运用了实拍合成的手段,在他的镜头捕捉和娴熟的剪辑技巧下“the Beach”显得别有一番风味。令人吃惊的的是他使用的拍摄器材只是家用级别的 Cannon HV20。在装配了来自 Redrockmicro 出品的 M2 摄影套件后,得到了漂亮的景深效果。
随着行业的进步,Flash on the Beach 中的“Flash”含义有了更深更广的延伸。它不仅仅是10年前那个“Flash”的原始含义,更是视频整合、富媒体应用程序、线上线下等等前沿概念。也许下个10年,它所涵盖的领域会更多、整合会更深。然而,不变的“Flash”是一种精神,那是我们这个行业立命的根本,那就是不断创新的理念。
像这种高级别的行业论坛是产业成熟的一个标志,在这方面国内的现状不禁让人心酸。路漫漫其修远兮,只有我们更强大,更成熟,才能拥有属于我们的一片天地。

http://fontpark.morisawa.co.jp/
日本的 Flash 大师 Yugop Nakamura 的新作,一如既往的程序艺术风格,一如既往的牛。个人最喜欢的是鼠标与文字接触时的弹性感,包括拖动时的变形处理,这才是高级互动应有的质感!