2008的最后一天

不到24小时,新的一年就要来临,呵呵。
2008的大事真的很多,可能是网络发展迅猛的体现吧,
我们获得信息比以往任何时刻都要迅捷。
当然,资讯有真有假,这个全靠经验来判别了。
2008过得还算充实,接触了不少FMS,FLEX方面的知识,感谢公司。
觉得对不住的还是给我留言或写信的网友,不能及时回信息,向大家表示由衷的歉意。
希望2009年经济回升;期待2009年的Flex Builder 4;努力让老爸老妈老姐过得更幸福,期望2009年是个平安快乐的一年。
The end.

测试Flash Player 10的Drawing API 2.0

bytearray的一篇文章,记录一下.
Measuring Drawing API 2.0 performance (by Thibault Imbert )
文章对Grahpics API新增的drawPath, drawTriangles方法与传统方法之间的性能做了一些测试.
运行下面的代码:
[code]
var container:Shape = new Shape();
addChild(container);
var currentTime:Number = getTimer();
var commands:Vector. = Vector.([1,2,2,2,2]);
var coords:Vector. = Vector.([10,10,100,10,100,100,10,100,10,10]);
for (var i:int = 0; i< 15000; i++) { container.graphics.clear(); container.graphics.beginFill(0x990000, 1); container.graphics.drawPath(commands, coords); } trace( getTimer() – currentTime ); [/code] 用时18~20ms 然后用传统的方法实现: [code] var container:Shape = new Shape(); addChild(container); var currentTime:Number = getTimer(); var commands:Vector. = Vector.([1,2,2,2,2]); var coords:Vector. = Vector.([10,10,100,10,100,100,10,100,10,10]); for (var i:int = 0; i< […]

Cairngorm Plugin For Flex 安装

安装Cairngorm Plugin For Flex时出错,提示:
Cairngorm Plugin (0.0.6.200811131413) requires plug-in “org.eclipse.emf.codegen”.
Google了下,找到http://thanksmister.com/?p=204这篇文章.
按照博主的方法,在Install面板中同时勾选Cairngorm和Europa Discovery Site,
然后在下一步中选择”Select Required”,这样会自动选中Cairngorm plug-in需要的其他插件(EMF),
之后就是按提示一步一步安装了.

FP10断点续传 源文件下载

Flash 断点续传 源文件下载
上一篇日志中给出了一些演示视频,这次释出代码。
AS代码是在一个星期内挤空闲时间写出来的,BUG还是有不少的。呵呵。
后台C#是边学边写的。
结构上经历过几次变动,由原来的单线上传变多线上传。
在显示上传进度上也花费了些时间。用于标志上传状态的MovieClip达到两千以后,
即使什么不做CPU也到了30%,于是对这部分优化,改成了位图显示。
多线上传方面,5线上传还是比较占用资源的,
因为文件的写入是独占式的,不可能真正的达到并发写入,
时间浪费在了请求资源这里,所以多线和单线没太大区别。
速度方面(XP的IIS5.1):
目前上传数据块大小是定值,未做成自动调节的,对速度的影响比较大。
设置为10KB,速度能稳定在600KB
设置为100KB时,可达到2MB
设置到1M时,峰值能到21MB
以上均为本地测试。
先天不足就是前文提到的要把文件先加载到内存中再上传,
再有就是使用过小的分块,会频繁的提交请求,会加大服务器的负担。
代码在这里下载:
http://code.google.com/p/kuploader/downloads/list
前后台之间的数据块通讯规则比较简单,这里只提供了一个方法抛砖引玉,呵呵。
欢迎大家拍砖。

用FlashPlayer10实现文件断点续传

大多数实现这样的功能要浏览器安装独立插件,而Flashplayer是安装率相当高的插件,目前使用Flashplayer实现文件上传的网站也不在少数.可以实时的显示上传进度等相关信息,非常实用.现在我们可以进一步提高Flashplayer的上传功能,让她支持断点续传
当然还是有局限性的,需要FlashPlayer 10;有本地的LocalSharedObject读写权限;
还要有后台服务器的支持;最后,因要先将上传文件读到内存中,这在一定程度上限制了上传文件的大小.
很是可惜,如果能流式读取文件的话,那么上GB的文件理论上是没问题的.
看完上述条件,估计聪明的你马上就想到实现的方法了,呵可.下面简述一下原理:
因为FP10的FileReference增加了load方法,可以把文件数据以ByteArray字节码形式加载到内存中,这是实现续传的大前提.
之后就是分块上传了.只要做好了Flash与服务端数据交换的规则,实现多”线程”上传,断点续传等功能就不难了,对于AS熟手来讲这就是体力活了.
目前还是个雏形,BUG非常多的,呵呵
先释出几个视频来:
单线上传
http://www.kingnare.com/auzn/temp/v1.html
单线上传,刷新后续传(其中暂停上传操作与续传没有直接联系)
http://www.kingnare.com/auzn/temp/v2.html
3线上传
http://www.kingnare.com/auzn/temp/v3.html
(因为是本地测试,没有或极少产生上传失败的数据块,如果产生,会在结束上传后重新上传)
代码目前不能共享,完善后会放出部分或全部代码.
等不及的话可以按上述思路尝试着做一下.如果您有更好方法愿意交流共享,那更好了 :)
P.S. 不知道是不是史上第一个(偷笑)

AIR灵异现象

电脑变慢,瞟了一眼任务栏上的任务管理器,CPU正常。
最后实在是慢得不能忍受了,打开任务管理器,一看就傻眼了,300多个进程。虚拟内存达到了3GB。
N(N>200)多的ADOBEA~1.EXE进程,其中有几个占用12MB内存,其他的均在300KB左右。
难道是中毒了?随手关了几个,但这个进程数还在缓缓的增加。
把与ADOBE有关的程序都关了,无效果。
上网查找,发现这应该是AIR运行时程序,Adobe AIR Application Installer.exe或Adobe AIR Updater.exe。
但源头是哪里呢?难道是死锁了?问题是我有好久没有进行AIR程序开发调试了。
诺大一个桌面就一个Firefox在运行,恍然大悟,是页面中的AIR App吧。
嗯,就是这个页面:
http://onflash.org/ted/2008/12/adobe-groups-flash-media-server-group.php
截图,关闭页面,一切都恢复正常了。
再次打开ted的页面,发现ADOBEA~1.EXE生成后会自动销毁。
之后反复测试,这种现象再也没有出现,看来今天中彩了 :)