技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 其他 --> AIR 编程的途径

AIR 编程的途径

浏览:2737次  出处信息

    在 Adobe AIR 的首页上,就给出了三种 AIR 编程的途径:

Ajax - 主要编写 HTML 和 JavaScript 代码,对于经常编写 Web 应用的程序员们来说,很容易上手。Flex - 我不太熟悉,应该是配置文件主导的一种方式吧,有可视化设计工具。Flash - 利用可视化设计工具设计界面,配合编写 ActionScript 代码。

    Flex 编程中应该也会用到大量的 AS 编程,但是 Ajax 方式的 AIR 呢?一开始,我认为它利用与 Web 编程几乎没有差别的环境吸引了以前熟悉 Web 应用的开发者,但是却牺牲了 Flash 强大的表现能力,如果用 JavaScript 实现 Flash 同等的动画效果,难度和复杂度应该会大很多。

    但是很快我就发现这个顾虑是多余的。Adobe 的 livedocs 中就有一个页面教大家怎么在 HTML 页面中调用 AS 的 library:”Using ActionScript libraries within an HTML page

    Adobe 对 webkit 做了一个小小的扩展,使其支持新的脚本并与 JavaScript 互通:

    该 swf 中的 AS 代码里的变量,怎么在 JavaScript 中引用呢?通过 window 变量一个特定的属性 runtime:

var libraryObject = new window.runtime.LibraryClass();

    大家还是看帮助页面吧,不过我几乎快把人家的东西全抄过来了。ActionScript 3 和 JavaScript 本来就应该遵循一个标准 - ECMAScript,这样也合情合理。

    有些人可能奇怪了,你既然选择了使用 Ajax 途径,干嘛还又要用 AS 呢?其实就是有时候图个省事。比如我要写一个 “推特” 客户端,上网一搜,发现了根正苗红(倒不一定非常好)的 twitterscript,不想再重新造轮子,不过它是用 AS3 写的,我也懒得再把它翻译成 JS.

    于是把项目提供下载的 swc 文件拿回来――那其实是一个 zip 格式,解压后,拿到我们想要的 library.swf,把它按照 Adobe 教的方法加到 AIR 程序的 HTML 页面中,马上就可以在 JavaScript 中使用这个库了!

    有耐心看到这里的读者一定有个很大的疑问,怎么从一堆 AS3 代码得到这个 swf 文件的呢?假如要对 twitterscript 的源代码做一下修改怎么办?这还得回到刚才的那个 livedocs 页面,最下面有个 Note:

    To compile an ActionScript SWF library for use as part of an HTML page in AIR, use the acompc compiler.

    下载并正确配置 Flex SDK 以后,就可以使用 compc 命令了。这个名字实际上是 component compiler 的简写,就是用来生成 swc 文件的。还有一个命令叫 acompc,前面加的那个字母应该是指 AIR,它与 compc 的区别只是加载了不同的配置文件而已,所以本文以后就只使用 compc 了。

    执行命令 “compc -help list” 就可以看到许多的编译选项,最重要的:

-compiler.context-root path to replace {context.root} tokens for service channel endpoints. 我不是特别了解,不过我把它设置为所有 package 的上级目录,对于 twitterscript 来说就是 http://twitterscript.googlecode.com/svn/trunk/src/ (这里只是示意,我写了 svn 的链接)-include-sources 必须指定的源代码目录,不必多解释了。对于 twitterscript,仍然是 http://twitterscript.googlecode.com/svn/trunk/src/ -directory 本来结果是输出成为一个 swc 文件的,你需要 unzip 之才能得到想要的 swf,现在有了这个选项就好多了,直接生成一个目录,而不是压缩文件。

    知道了这些就可以编译了 (我的当前目录下面是 twitter-api 目录,里面的 src 子目录里就是 svn export 的 http://twitterscript.googlecode.com/svn/trunk/src/):

以下是代码片段:
compc -compiler.context-root=twitter-api/src/ -include-sources=twitter-api/src/ -directory=true -output=twitter-swc
    于是在当前目录下生成一个子目录叫 twitter-swc,里面的 library.swf 就是我们想要的文件。可以再加上一个参数 “-compiler.debug=false” 来编译,获得更小的输出文件。

建议继续学习:

  1. MacBook Air与工作效率    (阅读:9387)
  2. Macbook Air换电池教程    (阅读:3959)
  3. 如何将AIR应用打包成exe    (阅读:3142)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1