HelloLimeJS 只有兩個檔案,HelloLimeJS.html 與 HelloLimeJS.js。
前面忘了講,LimeJS 必須使用 HTML 5,也就是說瀏覽器必須支援 HTML 5 才能正確執行 Lime JS,README.md 裡提到瀏覽器的支援狀況。
##Browser support: - *Current:* Chrome, Safari 5, Firefox 3.6+, Opera, IE9, Mobile Safari - *Soon:* Android, Blackberry Playbook - *Maybe:* WebOS特別注意的是 IE 只有 IE 9。
就來看看 HelloLimeJS.html 吧。
<!DOCTYPE HTML> <html> <head> <title>HelloLimeJS</title> <script type="text/javascript" src="../closure/closure/goog/base.js"></script> <script type="text/javascript" src="HelloLimeJS.js"></script> </head> <body onload="HelloLimeJS.start()"></body> </html>簡單到不行,兩個 javascript 和一個 onload。
LimeJS 是架構在 Google Closure Library 之上,所以得先加入 base.js,然後加入本身使用的 js,所以 onload 呼叫的 function 自然是定義在 HelloLimeJS.js 裡。
// set main namespace goog.provide('HelloLimeJS'); // get requirements goog.require('lime.Director'); goog.require('lime.Scene'); goog.require('lime.Layer'); goog.require('lime.Circle'); goog.require('lime.Label'); goog.require('lime.animation.Spawn'); goog.require('lime.animation.FadeTo'); goog.require('lime.animation.ScaleTo'); goog.require('lime.animation.MoveTo'); // entrypoint HelloLimeJS.start = function(){ var director = new lime.Director(document.body,1024,768), var scene = new lime.Scene(), // ...略過內容 director.makeMobileWebAppCapable(); // set current scene active director.replaceScene(scene); } // this is required for outside access after code is compiled in ADVANCED_COMPILATIONS mode goog.exportSymbol('HelloLimeJS.start', HelloLimeJS.start);先看架構的部份,Google Closure 特色之一就是提供了像是 Java package 的 Namespace,所以第一行先宣告這個專案(或這個檔案)的 namespace,接下來也像 Java 一樣 import 需要用到的 class,只是這邊是叫做 require 與 namespace,接下來就是程式的起點 HelloLimeJS.start() ,也就是 HelloLimeJS.html 裡 onload 所呼叫的。
LimeJS 有點像是 Flash,由一個導演(lime.Director)控制一堆場景(lime.Scene),適時加入一些聲光效果。
先 new 個 lime.Director,指定使用的 Dom 物件與長寬,再 new 個 lime.scene,在 scene 裡加入內容,然後呼叫 director.replaceScene() 就開播了。
最後一行請看 LimeJS Project 快速瀏覽,重點就是最佳化 Javascript 時,會將變數與 function 名稱縮到最短,但從 HTML 呼叫的 function 卻不可以被改名,要不然就呼叫不到了,所以這邊就是在串這一段的。
---
---
---
沒有留言:
張貼留言