‘Adobe’ 内的文章

佳能影像公益—绿援使者(2011)活动投票统计工具

Adobe, AIR | 星期四, 五月 26th, 2011

2011年“佳能影像公益—绿援使者”活动的网络投票环节已经进入了尾声,
作为活动参与者之一,为了方便查看票数,制作了一个统计工具,顺便每天在微博公布排名。
现在到了投票的最后几天,为了方便所有参与评选的队伍,放出改进版的统计工具。
(更多…)

天地会的算法PK:小天的约会

AS3, 算法相关 | 星期四, 九月 2nd, 2010

什么,有好玩的编程问题?咱可就指着这个活呐。

这次纳兰出的是一个很美好的、帮助小天约会的题目。

原帖地址:http://bbs.9ria.com/thread-62598-1-1.html

简单说来,就是有n*n的一块地图,从其中一点出发,走遍地图上所有格子,求走法,再求共有多少种走法。

当然,算法是咱弱项,不可能像flashyiyi那样不到半小时就做出来。

不过既然要做,还是带个图比较好玩一些,取长补短吧:-)

经过了n久的努力……有了下面的小程序:

(更多…)

关于Flex:毁了Flash的,或许就是Flex。

Flash Platform | 星期六, 八月 21st, 2010

以下内容仅为个人观点,欢迎讨论,谢绝谩骂。

说起来,小东应当算是比较特别的一个Flash开发者,至少目前还是。

第一,我不用靠Flash开发吃饭,但又足够热爱Flash,这使我可以跳出“生活所迫”的无奈境地来看整件事情;

第二,我从不靠Flex开发,因为我不大喜欢这项技术。

今天想说的是Flex,也可能用“骂”更恰当,因为我认为这项技术阻碍了Flash未来的发展,而我本身是十分热爱Flash技术的。

事情的一开始,无论是Macromedia还是Adobe,都对ActionScript、对FlashPlayer的效率过于自信了。

就在这样的盲目自信下,Flex勉为其难的诞生了,目的在于拉近Flash与传统程序员的距离,却逐渐让Flash技术偏离了其原本的轨道。

最开始的Flash,是设计师的工具,用来实现更独特、更新颖的互联网交互体验。而我认为,RIA一词,也正是为向着这个目标更进一步而提出的。可悲的是,现在很多人一提到RIA开发,就将其与Flex联系起来,事实上,Flex技术与RIA的精髓是背道而驰的。

(更多…)

2KB能做什么:AS3摄像头自动调整

AS3, 算法相关 | 星期四, 八月 5th, 2010

上面的这个演示用的swf只有2kb,实现了以下两个功能:

1.对摄像头采集的图像进行直方图均衡。

2.对摄像头采集的图像进行自动色阶调整。

本来还做了自动白平衡,不过发现网上流传的算法并不好用,故没有加进来。

效率还是不错的,即使是对320*240的视频流进行持续自动调整也能保证24-25的帧频。

属于aii.bitmap.effects包下,会随着aii.ui包的开源一块开源的。

(aii项目中目前计划开源的只有aii.bitmap和aii.ui两个包)

目前实现了Sobel/Hough边缘检测,直方图均衡(RGB通道),色阶调整(自动/手动,RGB通道)基于直方图选择阈值并二值化等功能。

另外还有使用PixelBender实现的肤色过滤器(基于Soriano提出的RGB肤色模型)、中值滤波器、最大值/最小值滤波器(滤波器是借鉴了国外牛人的pbk代码)等。(这里赞扬一下,PixelBender生成的pbj文件嵌入swf以后只占用不到1kb,相当轻量)

AS3效率优化:使用Vector数据类型

AS3, 效率优化 | 星期三, 八月 4th, 2010

自FlashPlayer10伴随着FlashCS4发布时,AS3中就多了一种新的数据类型:Vector

这里先给不大熟悉Vector的同学们做一下简介(节选并改编自官方文档):

Vector是一种特殊的数组

  • 首先,Vector的定义和C语言中“数组”更为接近,即数组的每一个元素都有相同的数据类型。(这就意味着对Vector中元素的访问要经过类型检查)
  • 其次,Vector是一种密集数组,即每一个索引中必须包含一个值。(可以是null)
  • 最后,Vector可以随时指定为固定长度的数组。

由于这些特殊性,Vector便拥有以下几点优势:

  • 性能:使用 Vector 实例时的组元素的访问和迭代速度比使用 Array 时的要快很多。
  • 类型安全性:在严格模式下,编译器可以识别数据类型错误。(但当使用 push() 方法或 unshift() 方法向 Vector 添加值时,编译器不会检查参数的数据类型,而是在运行时检查)
  • 可靠性:相对于 Array,运行时范围检查(或定长检查)极大地提高了可靠性。

今天我们主要关注的是使用Vector数据类型来优化程序效率。

对于追求效率的RIA应用,使用Vector来提升效率是一种简单却行之有效的办法,

然而很多开发者对Vector的了解不够深入,以致未能充分发挥Vector在速度的优势。

接下来我们便来剖析一下Vector的最佳使用方法。

(更多…)

使用FP10.1新特性进行全面高效的中文排序

AS3, 算法相关 | 星期日, 七月 11th, 2010

在FlashPlayer10.1出现之前,AS3的中文排序只能靠很死板,很不完善的方式实现。
现在问题终于得到了改善,我们可以很方便的对中文进行排序了:-)
首先来看看要测试的代码:

var words:Array=["囧","杜","寤","頔","腭"];//jiong,du,wu,di,e

我们使用传统排序方式对其进行排序:

words.sort();
trace(words);//囧,寤,杜,腭,頔 = jiong,wu,du,e,di

输出的排序有明显问题。

现在让FlashPlayer10.1新增的flash.globalization 包来帮我们解决问题吧。

(更多…)

iPad,iPhone等iOS设备的FlashPlayer-“Frash”

Apple, Flash Platform | 星期一, 七月 5th, 2010

此前有报道称,iOS越狱软件的Spirit的作者Comex准备破解,并将Flash带到苹果的i系设备中来。
现在,Comex宣布,他已经成功将Android Adobe Flash移植到iPad中来,称作Frash。Frash可在iPad的MobileSafari上本地播放flash。Comex表示需等Frash 一切稳定的时候才会发布该程序。
Frash目前只支持iPad,但很快也能支持iPhone 3GS和iPhone 4。
欣赏以下视频看看Frash在iPad上的效果如何。
(更多…)

AS3实现通过HTTP代理进行Socket连接

AS3, 网络连接 | 星期日, 七月 4th, 2010

最近在做的应用需要考虑到各种网络环境,于是在面对教育网等环境时就需要连接代理。
AS3目前还没有内置网络代理API,于是自己顺手写了一套。
目前只有HTTP代理+Socket连接,不久后会放出HTTP代理+HTTP连接的部分(其实是还没写:-P)
如果更有空一些,会写Sock5代理+Socket连接/HTTP连接的部分,不过不要期望太高就是了。

下面是正文。

总体来说,实现的很简单,使用起来也很简单,在创建实例的时候传递代理服务器地址、端口,然后当普通Socket类用就可以了。
(当然,建议在侦听事件时用ProxyEvent.CONNECT替代Event.CONNECT,因为对于HTTPProxySocket类来说,前者才真正表示已连接到目标服务器)

(更多…)