我想在加載Flash動畫時獲取當前幀。我按照這裏發現的教程http://learnswfobject.com/advanced-topics/executing-javascript-when-the-swf-has-finished-loading/index.html和SWFOBJECT CurrentFrame Javascript。我正在使用SWFObject 2.3測試版。這在Internet Explorer上工作得很好,但它不適用於Google Chrome。在Chrome中未定義的SWFObject事件在IE中工作
在Chrome中我得到的錯誤
Uncaught TypeError: e.ref.currentFrame is not a function
檢查e
返回[object Object]
檢查e.ref
回報[object HTMLObjectElement]
檢查e.ref.totalFrames
回報undefined
var flashvars = {};
var params = {};
var attributes = {};
function mycall(e){
setInterval(function(){console.log("Frame: " + e.ref.currentFrame)},1000);
}
swfobject.embedSWF("notmyswf.swf", "course", "100%", "100%", "6.0.0", false, flashvars, params, attributes, mycall);
這是爲什麼無法在Chrome工作但效果很好IE瀏覽器?未檢測到事件e
?有沒有解決如何使這項工作在Chrome上的解決辦法?
這樣做的目的是爲了我,如果用戶真的用他打開,不只是離開它空閒的過程中創造的支票。我已經添加了一個代碼來檢查閒置,但這還不夠。大多數學習者已經想出了一種開放課程的方式,讓它在那裏積累數小時的訓練。有些人甚至在他們的電腦上運行一個程序,它會每隔幾秒將鼠標移動一個像素,以免計算機閒置。如果我可以檢查Flash電影的當前幀,我可以創建一個函數來計算用戶每15分鐘查看的當前頁面。如果他被困在同一頁面中,我可以顯示一條提示,說明用戶必須點擊才能繼續查看課程,否則會自動關閉。
'e.ref'是對SWF自身的引用。它是跨瀏覽器的。當你說「檢查e.ref.totalFrames'返回'undefined'」時,你在什麼時候檢查?在'setInterval'裏面還是直接在'mycall'函數中? – pipwerks
另外,Firefox和Safari中會發生什麼(如果你在Mac上)? – pipwerks
還有一個問題。 :)這是一個基於SCORM的課程嗎?由Captivate或Articulate製作? – pipwerks