Raphaël-JavaScript Library-javascript矢量绘图

你是不是经常究竟在用到javascript绘图时纠结于IE的不支持canvas,纠结于canvas绘图API的繁琐纠结?现在你可以从这种纠结中摆脱出来了。

对,Raphaël是一款轻量的用于web的矢量绘图javascript库,用它你可以很简单的创建各类矢量图形,而且它本身还支持丰富的接口以及各种事件处理。更关键的是它绘出的图像都是矢量的。当然你也可以创建一个包含位图的图像。

Raphaël是使用SVG和VML进行绘图的,所以不要担心兼容性,它支持FireFox3.0+,Chrome5.0+,Opera9.0+以及Internet Explorer6.0+,对你没看错,它完美支持IE6+。而且Sencha Labs也使用了这个库。

怎么样心动了吧?心动不如行动,赶快拿起手中的电话订购吧,呃,赶快用你的鼠标点击下载使用吧!

简单的使用方法:

// Creates canvas 320 × 200 at 10, 50
var paper = Raphael(10, 50, 320, 200);
// Creates circle at x = 50, y = 40, with radius 10
var< circle = paper.circle(50, 40, 10);
// Sets the fill attribute of the circle to red (#f00)
circle.attr("fill", "#f00");
// Sets the stroke attribute of the circle to white
circle.attr("stroke", "#fff");

这里是我写的一个示例文件,点击查看

官方网址

官方使用手册

转载请注明原文出处《Raphaël-JavaScript Library-javascript矢量绘图》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。

commonjs-module1.1.1-draft-中文版

Contract 约定

Require

    o

  1. requrie是一个函数
      o

    1. require函数接受一个模块标识符
    2. o

    3. require返回外部模块的输出API
    4. o

    5. 如果有一个依赖循环,那么外部模块在它被另外一个依赖请求时,可能并没有完成执行;在这种情况下,在调用require请求当前模块执行之前,require返回的对象必须至少包含外部模块准备好的输出接口。
    6. o

    7. 如果请求的模块无法获取,require必须抛出一个错误
    8. o

    9. require函数可以有一个main属性
        o

      1. 这个属性可行时,应该是只读的且不能被删除
      2. o

      3. main属性必须是undefined或者与一个已加载的模块上下文中的module相等
    10. o

    11. require函数可以有一个paths属性,它是一个优化过的路径字符串数组,从高到低,到最顶层的模块路径。
        o

      1. paths属性不能存在在沙箱(sandbox,一种安全的模块系统)中
      2. o

      3. paths属性必须在所有模块中的引用必须一致
      4. o

      5. 使用替换对象取代paths属性可能没有任何作用
      6. o

      7. 如果paths属性存在,paths属性内容的修改必须被相应模块的搜索行为所体现
      8. o

      9. 如果paths属性存在,它可能不是一个搜索路径的详细清单,加载器可能在提及的路径之前或之后在内部查找其他位置
      10. o

      11. 如果paths属性存在,它是加载器解决,标准化及规范化提供的路径的优先选择。

Module Context 模块上下文

    o

  1. 在模块中有一个符合上述定义的自由变量require
  2. o

  3. 在模块中有一个自由变量exports,模块可以向其添加自己的API作为自己的执行方法。
      o

    1. 模块必须使用exports对象作为对外的唯一途径
  4. o

  5. 在模块中必须要有个自由变量,module对象
      o

    1. module对象必须有一个id属性作为顶层的模块id。这个id属性必须能够通过使用require(module.id)返回module.id来源所对应的导出对象。
    2. o

    3. module对象可以有一个uri字符串,它应该是一个合格的指向模块被创建的资源的URI(统一资源标示符).uir属性不应该出现在沙箱中。

Module Identifiers 模块标示符

    o

  1. 模块的标示符(id)是一个以斜线分割的协议字符串
  2. o

  3. 一个协议必须是驼峰式的标示符,“.”或者“..”
  4. o

  5. 模块标示符可以没有文件名后缀例如“.js”
  6. o

  7. 模块标示符可以是相对路径,也可以是绝对路径。如果一个模块标示符是以“.”或者“..”开始的,那么它是相对的。
  8. o

  9. 绝对标示符用于解决概念模块命名空间的根。
  10. o

  11. 相对标示符被解决相对于requrie被写和调用的模块标示符

Unspecified 未指明
标准中留下了一下未作说明的几个要点:

    o

  1. 模块是否存储在数据库中,文件系统中,或者工厂方法,或是互换链接库
  2. o

  3. 是否支持的路径是为解决模块加载器模块标示符

转载请注明原文出处《commonjs-module1.1.1-draft-中文版》 如无特别声明,所有文章均遵守创作共用 署名-非商业-禁止演绎 3.0协议。