原來是 LimeJS source 中, node.js 的 Deprecated API 在作怪,先自己改一下原始碼,看看日後,LimeJS 官網是否會不會將這隻臭蟲除去,以免舊版的瀏覽器開不了 LimeJS 所開發的遊戲。
出問題的檔案在 LimeJS 目錄裡的「lime/source/node.js」,利用文字編輯程式打開該檔案後,找檔案最後面 Deprecated API 中的「 throwDeprecated.bind」
/**
* Deprecated API
*/
function throwDeprecated(functionName) {
throw new Error("Function " + functionName + " Deprecated");
}
lime.Node.prototype.getRelativeQuality = throwDeprecated.bind(null, "getRelativeQuality");
lime.Node.prototype.calcRelativeQuality = throwDeprecated.bind(null, "calcRelativeQuality");
lime.Node.prototype.setQuality = throwDeprecated.bind(null, "setQuality");
lime.Node.prototype.getQuality = throwDeprecated.bind(null, "getQuality");
將它們都改用「goog.bind」的語法,改為底下的內容:
/**
* Deprecated API
*/
function throwDeprecated(functionName) {
throw new Error("Function " + functionName + " Deprecated");
}
lime.Node.prototype.getRelativeQuality = goog.bind(throwDeprecated, null, "getRelativeQuality");
lime.Node.prototype.calcRelativeQuality = goog.bind(throwDeprecated, null, "calcRelativeQuality");
lime.Node.prototype.setQuality = goog.bind(throwDeprecated, null, "setQuality");
lime.Node.prototype.getQuality = goog.bind(throwDeprecated, null, "getQuality");
將修改好的 node.js 儲存好,重新再以 lime.py build 過的 HTML5 程式執行時就不會再出現「throwDeprecated.bind is not a function」而空白一片了。
沒有留言:
張貼留言