Fluid idea for Life

随笔,杂记

一个简单实用的滤镜

这是在Adobe官网上看到的一个滤镜,功能简单实用,而且代码很少,非常适合学习。原址:http://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&loc=en_us&extid=1557018 [kml_flAShembed movie="http://www.fluidea.cn/blog/wp-content/uploads/2008/09/fliterex2.swf" height="232" width="250" /]

» 阅读全文

Tags: AS, Pixel Bender

在flash中使用自定义滤镜

http://www.mikechambers.com/blog上看到关于在Flex中使用自定义滤镜的文章。早在去年,adobe在labs上放出了一个名为AIF ToolKit的软件,如今已经更名为Pixel Bender,使用一种名为Hydra的语言,可以编写滤镜。Flash player 10现在已经支持使用自定义滤镜了。

可以直接使用最新版本的Flex SDK进行编译,只要SDK版本高于3.2即可,当然,还必须安装最新版本的Flash Player 10。去opensource站点下载最新版本的SDK就可以了。另外,adobe站点上,收集了很多人写的滤镜,我下载了几个点击率最高的试了试,感觉不错。

这是一个小例子,必须安装Flash Player 10 才能观看:

[kml_flashembed movie="/blog/wp-content/uploads/2008/09/fliterEx.swf" height="204" width="387" /]

下载源代码

要使用pixelbender制作的滤镜,首先需要在pixelbender中将pbk导出为pbj格式的文件供flash使用,然后在as中嵌入该文件,就可以使用了。如果希望在as中控制滤镜的参数,必须使用data接口。

Tags: as3, Hydra, Pixel Bender

关于Flex Builder 3连接Sql Server时无法通过测试的问题

FB 3提供了数据连接向导,包括Asp.net、php、Java、 ColdFusion等,其实也就是自动生成一系列的文件,包括服务器端和客户锻的,用作学习示例挺不错。

如果是Asp.net开发者,使用的是Sql Server 2000,可能会遇到一个问题,那就是建立数据库连接时总是无法测试通过,数据库用户名和密码都是对的,库名也是对的,但按“Test Connect”时,总是报错,详细信息中是一堆jdbc的异常。

解决方法:安装Sql Server 2000 sp3,就ok了。因为FB使用的是java连sql server,实际开发中使用C#是不会有这个问题的。

自定义itemRenderer引发的诡异问题之解决方法

之前写过一篇关于itemrenderer的帖子:http://www.fluidea.cn/blog/archives/82,这里算是续。

自定义itemRenderer是个强大的功能,但如果使用不当,就会出现很多奇怪的现象,比如内存泄露就是一个很常见的问题。

常见的两种问题: 1.在自定义itemRenderer中使用creationComplete事件来处理数据 有些朋友习惯在组件中把初始化处理都写在creationComplete事件处理函数中,一般情况下,这没有问题,然而在自定义itemRendere,却不合适。 因为itemRenderer是循环使用的,也就是说,itemRendere在第一次创建后,可能用来显示不同的数据,而本身只被创建一次,creationComplete事件只发生一次,自然就会出问题。 这个问题很常见,可能引发很多奇怪的现象,比如对象无法被清除,资源释放不完全,内存泄露等等。 那如何避免?我们可以覆盖data存取器的setter方法,比如:

override public function set data(value:Object):void{
	//加上自己的代码
}

2.删除数据后系统资源仍被占用 在解决了第一个问题后,还是有可能出现资源无法正确释放的问题。比如TileList组件可显示40条数据,每一条数据都包括一张位图。当删除数据,从50减少4时,会发现显示的数目确实减少了,但系统消耗的资源却不变。数据量越大,这个现象就越明显。 问题出在哪里?根据现象,从逻辑上推测:数据量减少,也就是已有的itemRenderer实例被“删除”的时候,并没有释放资源。 这就是问题所在,已有的itemRenderer并不会被删除,一旦创建就一直存在,所谓的“删除”,仅仅是将它变为不可见,而占有的资源不会自动释放,如果其中包括了位图、声音、动画,将一直存在,成为系统资源杀手。 我提供的解决方法:监听itemRenderer的hide事件,在变为不可见的同时,手动释放资源。也许有其它更好的方法,就等着你去发现了。

Tags: itemrenderer

AIR做的flv编辑器

这是一个超强的Air程序,可以解析flv文件,合并flv文件,导出mp3、swf等等,目前还在beta阶段,但功能已经很强大,真正的桌面程序: http://www.richapps.de/?p=134

PS:http://actionscriptnotes.com/blog提供了好几个pureMVC的实例程序,包括一个五子棋的游戏源代码,是学习pureMVC的好资源。

Tags: Air

Flash读取pdf?

虽然目前有开源的 http://alivepdf.bytearray.org/,可以使用用flash/flex 创建pdf,但目前还没有看到能解析pdf,来用flash读取pdf的类库。

这里有一个例子: http://pdfmenot.com/view/http://www.irs.gov/pub/irs-pdf/fw4.pdf 后面的“http://www.irs.gov/pub/irs-pdf/fw4.pdf”可以修改为网上任意的pdf,似乎实现了这个功能?

仔细分析后,再发现,原来是后台先将pdf转为swf,然后再显示的。 AIR中已经可以看pdf了,不知道flash中什么时候才可以?既然能够写出生成pdf的库,要读取应该也不远了?

升级到Wordpress2.5.1

感觉速度确实有提高

顺便测试刚装的Air-badge 插件:

[airbadge]walkingTree,http://www.fluidea.cn/blog/wp-content/uploads/2008/05/walkingtree.air,1.0, http://www.fluidea.cn/blog/wp-content/uploads/2007/12/logo21.jpg[/airbadge]

Tags: Air

理解itemRenderer

本文系原创,转载时请表明出处。 使用Flex的组件时,大伙不可避免要和itemRenderer打交道。Flex组件中,支持自定义itemRenderer功能的组件不少,常见的有List,TileList,ComboBox,Tree,DataGrid等。这类组件具有一个共性:显示一组数据,并具备交互功能。 在使用这些组件时,我们只需要把数据按照一定的格式组织好,然后赋予给组件作为dataProvider,剩下的事就由组件来完成。处于需要,有时候我们需要个性化数据的显示方式,比如List组件,默认的itemRenderer是一个类似Label的元件,只显示每一条数据中的固定字段,如果想要显示更多信息,就必须自定义一个itemRenderer。

» 阅读全文

Tags: Flex, itemRenderer

Flex程序开发心得小结

和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。

在Flex的帮助手册中,有一个专门的章节讲了程序的优化,下面是我结合帮助作的几点小结:

1、避免容器的多级嵌套,减少相对尺寸、相对定位的使用。 在使用百分比来给容器内的元件定尺寸,一旦容器中的任何一个元件的位置和尺寸变化,都会引发容器对所有子级的重定位动作。如果嵌套的级别很深,这个计算量会很大。

2、尽量使用轻量级的容器 Canvas是体积最小的容器,它只支持绝对定位。很多时候,都可以使用它来代替HBOx和VBox。另外,Canvas也是我们编写自定义容器性质组件的一个首选。它具有容器的基本功能,利于扩展。

3、避免使用大体积的组件,比如DataGrid、AdvancedDataGrid 大个子组件的功能强大,但开销也是非常大的。由于功能的复杂性,使得皮肤、样式、itemRenderer的实现都格外复杂。

4、处理数据时多用分页的方式 在使用数据类型控件时,尽量减少数据一次的显示量。比如TileList(更正:应该是Tile,TileList相反),它会把数据一次性全部创建,不管是不是需要显示,这样很浪费资源。ViewStack 、TabNavigator等在处理元件时,并不是一次创建,只要元件在第一次被显示时才创建,这样,就避免的不必要的开销。

5、setStyle和styleName Flex 组件的皮肤都是可视化元件,组件在自身初始化时,会使用当前的样式比如styleName完成所有皮肤元件的绘制。 如果我们在运行期间通过setStyle修改了组件的样式,组件的尺寸、位置就会作相应调整。联系到第一条,如果组件位于一个层级很深的容器中,也会有一个大的计算量。

Tags: Flex

Air程序 - Flash decompiler

flash-decompiler是一个开源项目,使用Air + flex开发的SWF反编译器。

地址是:http://code.google.com/p/flash-decompiler/

有兴趣可以下载源码试玩下。目前能够解析出SWF文件(支持flash player9)的头信息,标签和 class名等,还在开发中。

另外,程序使用了Cairngorm框架,值得学习。

Total: 31Page 2 of 4‹ Prev1234Next ›