Fluid idea for Life

随笔,杂记

AS3开源的图形化工具库

之前在一个项目中接触到图形报表相关的需求,后来又有遇到。针对AS3的开源图形报表库不少,经过一段时间的积累,现在把收集的资源和使用心得整理下。

1、Yahoo的Flash开源组件

优点是纯ActionScript,可用于Flash和Flex中,基本功能都有,小巧,上手快,使用灵活,代码量不大,扩展性比较强。用在对功能没有太高要求的小型项目中,最合适不过。

2、openchart

比较傻瓜化的一个工具,使用时直接按照格式提供数据源即可,所有的功能都已经封装好了,都不需要编写代码。对于非Flash开发者来说,还是很实用的。

3、Axiis

一个针对Flex环境的可视化开发框架,功能很强大,绘图方面使用的是Degrafa工具库。官方站点上提供的Demo都很吸引人。

由于是针对Flex环境,所以使用起来很方便,可以用MXML代码来拖拽编辑。 实际测试运行了几个例子,感觉性能不太理想。一些例子程序,在中等配置的机器上跑,当数据量增到100以上,能感觉到鼠标提示和屏幕重绘有明显延迟。另外,由于使用了Degrafa工具库,最后生成的SWF体积颇大。

4、Flare(推荐)

从性能和效果上看,个人觉得,Flare比Axiis要强不少,看看这个Demo就知道了。Flare更像一个图形引擎,其中的树形图效果真的是很惊艳。

Flare使用ActionScript开发,所以没有什么限制,唯一的缺点大概是上手不太容易,要熟悉使用需要花些功夫。

5、BirdEye

又一个超强的框架,目前还处于开发中,可以通过svn取源码,我还没有自己试过,但看看Demo,就知道这个绝对是值得期待的。

--------------------------------

暂时想到这么多,其他的还有不少,待进一步积累。

Tags: chart, flare, axiis, birdeye

Haxe的File Format库

Haxe和两三年前相比,现在已经很成熟了,很多人都说它的编译器比Flex的还要好,在性能优化、语法上有很多改进。不过并不冲突,可以取长补短。

Haxe的库现在是越来越多,各种引擎、框架、扩展。File Format是一个文件相关的库,用来解析或生成各种文件格式,比如swf、ABC(swf中的字节码)、Flv、Pbj(PixelBender的二进制格式)等等,在作者的TODO列表上,还有一串跟着。

我比较感兴趣的是pdf,编译了一个小小的例子试了下,在解析pdf时碰到了运行时错误。使用反编译器看了下代码,比较多比较乱,看的头昏,希望作者在后续可以完善这个库。

另外,radpdf,haxe版的生成pdf的库,从php的FPDF移植过来的。

Tags: haxe

由flash on iphone想到的

假期回来,很多新闻。Adobe最近又放了很多Big News,flash Player 10.1、Flash cs5开发iphone程序、AIR 2.0、Slider Framework...,网上的新闻泛滥。总结起来,可以看出一点,Adobe把重点转到了手机领域。

移动互联网已经成为了it巨头的下一块大蛋糕,iphone、gphone、ophone,微软的wm 6.5,Nokia的symbian,blackberry,palm,智能手机已经成为时下的热点。李开复博士的创意工厂,所关注的领域就有“移动互联”这块,Adobe也加大了这方面的力度。

现在的智能手机越来越出色。前不久给LP买了一款HTC的T3238, 528MHz处理器,192MB RAM,跑wm 6.5系统,功能非常强劲,这样的机器,售价2K不到,这个配置和我最开始使用的PC机差不多。

Adobe早期推的Flash Lite,发展到现在,不算成功,在某些国家,比如日本,有一定市场,和日本的特殊环境有一定关系,而在其它国家,始终没有打开局面。在手机上,Flash player无法像在web上那样一键安装,和使用传统的开发平台相比,没有什么优势可言,Flash Player在浏览器上的成功经验没法复制到手机上,而且还有很多局限,比如和底层的交互有限,性能低下,难以分发安装等等,这些因素也束缚了与硬件产商的合作,无法吸引开发者。如果不解决这些问题,我觉得Flash要跑在手机上还有很长的路要走。手机软件开发,和桌面开发相比,要更复杂。不同的平台之间,差别不是一点半点,Flash要想实现跨平台,难度更大;和那些原生开发语言相比,又有哪些卖点?

Adobe用AIR进军桌面,到现在,个人觉得,AIR的实用性还远远不够;Flash在手机上的发展,现在看到的,还都是些美好的前景,等下一个测试版...

Tags: flash

用AS写Web程序

mod-actionscript是一个开源项目,用来实现在web服务器端跑Actionscript。

这个项目挺有意思的,想象下,在Apache下用as3写后台程序,对熟悉as而不熟悉后台语言的人来说,做web开发又多了个选择。

不过我比较质疑这个项目的实用性,毕竟其它的web语言已经非常成熟了,相信很少会有服务器上安装这个第三方程序。Adobe很早就推出了针对Tomcat、IIS、Apache的Flex模块,但似乎用的人少的可怜,解释执行对AS3来说,可能并不适合。

另,Flash MiniBuilder,一个开源的AS在线IDE

as3火焰效果

terafire是用as3写的一个火焰效果,代码很简洁,收在这里了。

效果看这里

让你轻松使用pv3d

今天看到了一个另人想象不到的东西:vizualpv3d,看上去像一个复杂无比的软件,让我们可以轻松创建3d对象,所有的操作都是可视化的,像操作组件那样,添加光照,调节Camera...我想只有老外才有这样的精力和魄力做出这样的东西来。

试用了下,感觉不错,参数太多,还还玩透。目前可以将场景导出为xml,但没看到对应的解析播放器,期待下一个版本。

Tags: pv3d

播放mp3的另一种方法

as3中,ByteArray的出现使得很多应用成为了可能,URLLoader支持以二进制流加载数据,Loader的loadBytes方法可以让我们实现数据和可视对象的转换,到现在为止,已经有牛人写出了一堆的文件分析库,包括swf、png、jpg、gif、zip、ico、psd、bmp、wav...,相信还会越来越多。

不过,as3至今不支持动态载入声音数据,比如mp3数据,但牛人总有牛方法,这不:http://www.flexiblefactory.co.uk/flexible/?p=46,这位实现了以二进制方式播放mp3文件。

分析了一下原理,大概是:首先利用Flash Player 10的新功能,FileReference新增的load方法,获取mp3文件的数据,(这里可以改写为URLLoader加载),然后动态构造一个SWF文件,向其中写入mp3文件数据,从而得到一个包含该声音的swf文件,最后用Loader对象loadBytes,获取其中的SoundClass对象(SoundClass类在popforge中也有出现,有关这个类我还会作深入研究),然后播放。

这个过程不可谓不曲折,经测试,对采样率不是44khz的mp3好象不奏效,原因可能就是上一帖中说的那个啥。

ps,as pdfbox项目已经搁置有段时间了,最近准备再拾起来

Tags: loadBytes

难道一个完美的SOUND真的很难?

很久就听说AS3的Sound有些诡异,一直没有亲见,这次终于碰上了。 下面是段简单的代码:

var sound:Sound = new Sound();
sound.addEventListener(Event.COMPLETE,onLoaded);
var soundChannel:SoundChannel;
sound.load( new URLRequest("test.mp3") );
function onLoaded(e:Event):void
{	
	soundChannel = sound.play();
	soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundOver);
}</p>
<p>function onSoundOver(e:Event):void
{	
	trace("over:"+sound.length+":"+soundChannel.position);
}

播放完毕,会发现SOUND_COMPLETE事件触发时,position总会小于length,实际测试时,mp3文件不同的采样率导致不同的误差,大的有好几秒,小的有几百毫秒。在一般情况下,这个误差可以忽略,但如果需要对声音时间进行精确控制,问题就大了。最近做的项目中恰好需要对声音进行精确控制,精确到200毫秒左右,在经过反复检测后发现了这个问题。 Google下,发现很多人都遇到了同类问题,比较权威的解释是:Flash Player可以处理比特率在16-320kbps范围内的mp3,且总以44.1khz的采样率来进行播放,这意味着如果原采样率是22khz,则以两倍速度进行播放,于是产生了误差。 有个老外写了一个精确获取position的方法,通过采样率来校正误差,地址一时找不到了,但还是没能彻底解决这个问题,只有等Adobe来做了。

Tags: SOUND_COMPLETE

很强大的AS3库

libspark是一群日本开发者维护的ActionScript开源站点,其中包括了数量繁多的库,其中的很大一部分都很实用,比如swfassist,一个解析SWF文件的库,支持Flash player 9,可以用as动态生成swf文件,还有FLARToolKit,一个as版的虚拟实现库;解析psd文件、ico文件、bmp文件..... 地址:http://www.libspark.org/wiki/WikiStart/en

Tags: libspark

Flash lite - ActionScript Stuck排错记

随着3G的到来,手机应用好象又开始升温了,不过总体上看,flash在手机应用上还处于起步阶段,把技术转换为简单实用的产品和服务,这中间还有很多路要走。 最近做的东西很杂,包括一个在手机上跑的Demo。环境是flash lite 2.0,在模拟器上跑Demo,一起正常,结果搬到真机上跑,出现了 Problem with content 4运行时错误,程序挂了。翻阅手册,发现是颇经典的“ActionScript Stuck”错误,肯定是哪块代码写的有问题,于是开始优化程序,所有不用的变量全部delete掉,仔细检查所有的循环,把for循环全部改为while循环,数组定长等等,不过错误依旧。

» 阅读全文

Tags: flash lite

Total: 23Page 1 of 3123Next ›