jQuery 1.3的VS智能提示下载

昨天晚上才发现已经出了jQuery的1.3版本,于是下载下来,把原来一个兄弟翻译的1.2.6的文档移植到了1.3中,点击这里可以下载可以在Visual Studio 2008中显示智能提示的jQuery版本。

相关截图:

从官方的Release notes中可以看到,这一个版本的jQuery性能比上一个版本的jQuery提升了好几倍。

其实我还是很喜欢Mootools,它的写法非常的优雅,不过已经很久很久没有更新过了。使用了这么久,发现其中的问题还是很多的,至少我自己已经修改过几次其中的bug了,它远远没有jQuery来得稳定,不知道下一个版本会不会好一些?然而我还不知道下一个版本什么时候会出来………

继续豆瓣插件——显示电子书下载链接

VeryCD的插件发到豆瓣上后,NullPointer说这个不错,要是能再整一个电子书的就好了,我说没有找到很好的电子书下载网站,所以没有办法,他立即给我提供了一个很好的电子书搜索引擎,正好有了第一个插件后,改改就能做第二个插件了,于是就接着写了这个。

当你浏览书籍时,可以在豆瓣右侧顶部显示从Google搜索到的电子书下载信息,点击即可打开相应的下载页面。顶部的有分类搜索结果,点击即可在相应的分类中搜索相关下载信息。默认显示三个搜索结果,点击“显示更多”按钮,可以显示至多十条信息。

截图:

最新版本下载地址:

http://code.google.com/p/plugins4douban/

给豆瓣写了个从VeryCD上搜下载信息的插件

这个灵感来自于师弟freefcw,因为自己也经常泡豆瓣,泡的时候又喜欢跑到VeryCD上搜音乐搜电影,于是就写了这么一个插件。这个插件是干什么的呢?

当你浏览音乐专辑或者电影时,会在右侧顶部显示VeryCD上的相关下载信息,点击即可打开相应的下载页面。顶部的有分类搜索结果,点击即可在相应的分类中搜索相关下载信息。默认显示三个搜索结果,点击“显示更多”按钮,可以显示至多十条信息。

截图如下:

插件下载地址:

http://plugins4douban.googlecode.com/files/VeryCD4Douban-0.2.0.user.js

使用说明(从豆瓣上抄的):

还原百度MP3真实地址

纯属无聊,本来只是想写个豆瓣的插件,看到歌曲列表以后就可以在线试听或者下载,不过不能直接从搜索结果列表拿到mp3或者wma的真实地址,只能进去下载页面分析。

不过下载页面的地址的加密倒是简单,很容易就发现了URL密文和明文的对应关系,再稍微看一下JavaScript,就知道怎么还原了。还原方法如下(还是JavaScript版本的):

//48-0, 65-A, 97-a
var CHARACTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

function decode(url, offset) {
    var l = url.length;
    var s = '', idx, ch;
    for (var i = 0; i < l; i++) {
        ch = url.charAt(i);
        if (/[A-Za-z0-9]/.test(ch)) {
            idx = CHARACTERS.indexOf(ch)

Fookie——在JavaScript使用Flash存储本地数据

前几个月的时候就说过在JavaScript应用中使用Flash来存储本地数据,使用这个方式有一个非常大的好处就是:不同的浏览器可以共享相同的本地数据。

现在终于抽空整理了一下以前的应用,作为一个简单的开源项目发布了。在Google Code上的地址是:http://code.google.com/p/fookie/,代码里面有可以在vs中智能提示的文档。

JavaScript类名为Fookie,提供了以下几个Public方法:

  • Fookie.init(swfUrl, options);
  • Fookie.read(key);
  • Fookie.write(key, value);
  • Fookie.remove(key);
  • Fookie.clear();

Mootools常用方法扩展(三)

继续Mootools常用方法扩展,依然还是String类的扩展。

方法:unescapseHTML

说明:这个上次忘了,和escapseHTML正好是一对儿,功能正好相反。

String.implement({
    unescapseHTML: function() {
        ///<summary>
        /// 反转义字符中的HTML代码
        ///</summary>
        ///<returns type="STRING" />
        var htmlChars = ['&~&amp;', '<~&lt;', '>~&gt;'];
        var r;
        var s = this;
        for (var i = htmlChars.length - 1; i >= 0; i--) {
            r = htmlChars[i].split('~');
            s = s.replace(new RegExp(r[1], 'g'),

AS3位图任意形变一步一步来(5)——简单Demo

示例,红颜色的是三角形的分割线。

混乱丑陋但是完整而且可以跑的测试代码(全部放在第一帧就可以了):

//

//-----------------------
var url:String = 'green.jpg';
var bd:BitmapData = null;

var px0,px1,px2,px3,py0,py1,py2,py3;
var pxa, pxb, pxc, pxd, pya, pyb, pyc, pyd;
var drct = true;
var steps = 20;
var interid;

// segments
var hs:Number = 8, vs:Number = 8;

// px: x coordinate
// py: y coordinate
var pxs:Array = new Array();
var pys:Array = new Array();
var trs:Array = new Array();
var nps:Array = new Array();

// four 

AS3位图任意形变一步一步来(4)——任意形变

转载请注明出处:http://fdream.net,作者:Fdream

放着放着就忘了,多亏army同学在后面催我,要不然还真不知道什么时候会继续弄这个。今天上午又抽空捣鼓了一下,偏移总算是弄出来了,不过渲染效率很低,中间的计算过程应该还可以继续优化的。另外,弄到这里发现还是有问题,分得较细的时候会出现裂缝……误差真可怕!

先不管这个误差,我们来看看能不能形变先。由于计算形变矩阵需要初始的坐标和新的坐标,需要两个方法来计算(貌似可以合并?):

// calculate points
// 包含x坐标和y坐标,分别存储在pxs和pys数组中
// @params:
//   w: 位图宽
//   h: 位图高
//   hs: 水平分段数
//   vs: 垂直分段数
// @return:
//   void
function CalculatePoints(w:Number, h:Number, hs:Number, vs:Number):void {
    var iw:Number

Mootools常用方法扩展(二)

继续Mootools常用方法扩展,依然还是String类的扩展。

方法:format

说明:一个非常简单的format方法,和C#里面的format类似。这个方法会用参数来依次替换字符串中用大括号{}括起来的数字,比如用第一个参数替换{0},用第二个参数替换{1}等等。

String.implement({
    format: function() {
        ///<summary>
        /// 格式化一个字符串,替换其中用大括号包含的数字及大括号,类似C#的format
        /// 如用第一个参数替换{0}
        ///</summary>
        ///<param name="values..." type="String">相关参数</param>
        ///<returns type="STRING" />
        var s = this;
        for 

Mootools常用方法扩展(一)

收集了我们团队部分常用的方法,我稍微进行了一下整理,贴出来和大家分享。

先从String的扩展开始吧,后面有一部分的扩展要依赖这里扩展的方法。为了更加清晰和详细,我会一个方法一个方法地贴出来,你完全可以把所有的方法合并在一起。

方法:startsWith

说明:这个方法可以判断字符串是不是以指定的字符串开头。

String.implement({
    startsWith: function(s) {
        ///<summary>
        /// 检查一个字符串是不是以某个字符串开头
        ///</summary>
        ///<param name="s" type="String">开始字符串</param>
        ///<returns type="BOOLEAN" />
        return (this.indexOf(s) == 0);
    }
}

简单示例: