由於 Google Swiffy 還不斷在修改,也沒有正式文件 很多 API 功能需要自行測試才會知道是否能用 雖然有支援基本 trace 功能,但是訊息都會變成一般字串輸出到 debug console 沒辦法像 JS or HTMLElement 物件那樣可以直接在 console 展開觀察屬性 另外,目前也不支援 ExternalInterface, fscommand 也不能讀取外部資料 可是明明都已經被轉成 JS 卻不能與 Swiffy runtime 外面 js 溝通取得 window, document,感覺這樣很笨 不過呢!測試著 function 時,突然發現以下的 AS 寫法 在轉換為 Swiffy 後,居然能取得 JS Window 物件!

 function getDomWindow():Object{ return (function(){ return this; }).apply(null); } 

有了 JS Window 一切就好辦了 可以直接呼叫 console.log 看看 runtime 裡的 _root 是什麼東西

 getDomWindow().console.log(this); 

Swiffy runtime 的 _root 物件,所有屬性一覽無遺! 接下來,想要在 Swiffy runtime 內與外部 JS 溝通,甚至讀取外部資料 通通有解了吧! 以下示範從外部 JS 控制 Swiffy runtime 播放與停止功能 先在 Flash 動畫內影格 1 加上以下 AS:

 function getDomWindow():Object{ return (function(){ return this; }).apply(null); } var window; if (!window) { window = getDomWindow(); window.runtimeStage = this; } 

輸出 Swiffy HTML 之後 打開

HTML 文件多加上兩個按鈕就可以了

 ... <input type="button" value="stop" onClick="runtimeStage.stop();" /> <input type="button" value="play" onClick="runtimeStage.play();" />