MagicSearch

晚上看到一个 OSX 上的应用,叫Alfred,是一个类似 spotlight 的工具,但比 spotlight 要强大很多。 不仅可以在里面搜本地程序,而且在搜索的内容前加“>”就可以输命令,可以直接输入算式,也可以自定义搜索引擎,采用诸如“google 你好世界”的方式搜索。 突发奇想,是不是用 Javascript 也可以实现? 于是,首先实现了多搜索引擎集成的功能。 不想用以前那种下拉菜单的形式,想用自动补全的形式,着实忙活了好长时间,算是把功能做出来了。 例如,输入“douban 平凡的世界”就可以在豆瓣搜索“平凡的世界”,输入“weibo 前端”就可以搜索“前端”相关的微博。 还可以输入“t”+回车,然后再输入关键字,就可以搜索淘宝了。 目前只加入了简单的几个搜索工具(因为帮我设计界面的 AlisterTT 同学只给我了这几个图标= =!): 微博、google、豆瓣、淘宝、亚马逊。 我给他起了个响亮的名字,MagicSearch,将来如果能做到手机客户端上当然更好了,应该会很有用。 还有很多东西和细节有待修改。而且计算器的功能也没有加进去,电脑快没电了,只能等到明天了。 先放个截图: 对了,还有演示地址(初步版本,轻拍): http://labs.simpleapples.com/magicsearch update1: 昨天晚上犯懒,没有把搜索引擎的图标和到一张图上,导致输入 amazon 等搜索引擎名字敲回车之后,右边的图标因为网速没有出来,现在和到一张上了。 另外放出 github 地址: http://github.com/simpleapples/magicsearch 至于进入其它搜索引擎之后如何不能返回默认的 google 搜索的时候,只要点击右边的搜索引擎图标就可以了。 update2: 添加字典、发电子邮件和计算四则运算功能。 字典功能:输入 dict 加上要查的单词或词。 发电子邮件功能:输入 mail 加上电子邮件地址。 四则运算功能:直接输入算式,见图。

十二月 1, 2012 · 1 分钟 · Zhiya

在Flash中载入swf文件并逐帧播放

在 Flash 中导入 swf 并且播放,使用 ActionScript 中的 loadMovie()函数就可以完成,但是如果要逐帧播放就比较麻烦了。因为逐帧播放时,要么给每帧定一个播放时间,要么然手动设置按钮控制。 这里以按时间逐帧播放为例,介绍一下如何使用 ActionScript 控制。 控制逐帧播放的代码如下: var currentPage = _root._currentframe; //设定当前页变量 var i = 0; function timer() { if(currentPage == _root._currentframe) { //如果播放到当前页则跳到下一页 gotoAndPlay(currentPage + 1); currentPage = _root._currentframe; } } timeInter = setInterval(timer, 3000); //设置定时器3000ms 载入影片代码: loadMovie("XXX.swf",_root); 具体效果图: Interval 层第一帧为计时器代码,Interval 最后一帧代码非常重要: ClearInterval(timeInter); 最后一帧清除掉计时器,是防止循环播放后重复添加多个计时器。 Stop 层每一帧添加 stop();命令。Content 层为具体内容。

十一月 22, 2012 · 1 分钟 · Zhiya

指南针WebApp

使用 javascript 制作了一个指南针的 WebApp。 监听了 DeviceOrientation 事件,设备在变换方位时会产生 alpha、beta、gamma 三个值,而其中的 alpha 值就是目前的角度值。 window.addEventListener('deviceorientation',function(event) { target.style.transform = 'rotate(' + event.alpha + ')'; },false); alpha 值以正北为 0°,顺时针增加到 360°,对应的就是指南针指针的旋转角度。 使用 css3 的 transfrom 属性就可以旋转指针。 最后对指南针的度数进行判断,计算出方向(如北偏东 XX 度,南偏西 XX 度等)。 只能在支持 DeviceOrientation 的浏览器上正常使用(mobile safari、android 4.0+ browser、mobile ) 演示地址: http://labs.simpleapples.com/compass GitHub: http://github.com/simpleapples/compass update1: 发现这个应用在 iPhone 下会出现将手机初始方向认成正北的问题。= =! 解决方法是使用 webkitCompassHeading 来获取角度,而不是 alpha 值。webkitCompassHeading 的值是设备方向和地磁北极的角度差,而 alpha 值是设备转动的角度。参见苹果文档: http://developer.apple.com/library/safari/#documentation/SafariDOMAdditions/Reference/DeviceOrientationEventClassRef/DeviceOrientationEvent/DeviceOrientationEvent.html 在安卓平台的 Opera 浏览器下 alpha 值就是设备和北极的角度差,可能是 Opera 对 html5 的支持比较好。

十一月 14, 2012 · 1 分钟 · Zhiya

迅雷链接解密

经常在网上看到迅雷专有的以 thunder://开头的连接链接,其它软件无法下载。 其实迅雷连接链接是使用 base64 加密的结果,只要解密一下,就可以获取到原来的连接链接地址。 拿百度 logo 图片的连接链接举个例子,原链接为 http://www.baidu.com/img/baidu_sylogo1.gif 迅雷是在原链接前加 AA,后加 ZZ,行程一个新的字符串 AAhttp://www.baidu.com/img/baidu_sylogo1.gifZZ 然后对字符串使用 base64 加密,再加上 thunder://前缀,就完成了。感兴趣的童鞋可以在 linux 中使用 $echo AAhttp://www.baidu.com/img/baidu_sylogo1.gifZZ | base64 来加密字符串。结果为: QUFodHRwOi8vd3d3LmJhaWR1LmNvbS9pbWcvYmFpZHVfc3lsb2dvMS5naWZaWg== 其它的下载软件使用的方法也大同小异,FlashGet 是在字符串前后加[FLASHGET] ,然后 base64 加密,而 QQ 旋风则直接对连接链接进行加密。 这里有一个在线的迅雷链接解密程序:http://labs.simpleapples.com/thunderurl

十一月 12, 2012 · 1 分钟 · Zhiya

使用javascript和html5制作的LBS类WebApp

使用 javascript 和 html5+css3 制作的一个可以显示目前位置以及行动路径的 webapp。 调用了百度地图的 api,在地图上绿色的线画出了当天的路径。 一个 marker 显示了当前的位置。 首页的圆是用 canvas 画的,但是没能把文字画进去,还在研究。 至于获取到的数据都存到了 localStorage 里,目前是每 3s 定位一次,不知道这样的数据量如何,如果数据量大,localStorage 还是不太适合。 还没有仔细测试,应该还有不少 bug。 这是在我手机浏览器上运行的效果,定位有些不太准 = =! 演示地址:http://labs.simpleapples.com/liner update1: 修改了几个 bug,发布到 github 了。 github:https://github.com/simpleapples/liner

十一月 10, 2012 · 1 分钟 · Zhiya