gpt4 book ai didi

javascript - HTML5 的 Canvas + Javascript 代码在 iOS 上不起作用

转载 作者:行者123 更新时间:2023-11-28 20:35:21 26 4
gpt4 key购买 nike

我完成了 javascript + html5 Canvas 的基本引擎。非常简陋。它适用于浏览器,但不适用于 iOS。

我是否使用了尚未在 Safari Mobile 上实现的功能,或者其他功能? :(

http://bluecodestudio.com/kipos/gametest.html

最佳答案

在 keyboardJS.init() 中,您在事件回调中使用了 bind() 方法。

document.addEventListener("keydown", this.keyIsDown.bind(this));
document.addEventListener("keyup", this.keyIsUp.bind(this));

Safari(包括移动版 Safari)不支持 bind() 方法。您需要提供一个 polyfill:

/**
* Bind.js
* Copyright 2010, WebReflection
* License: http://www.opensource.org/licenses/mit-license.php
*/
if (Function.prototype.bind === null || Function.prototype.bind === undefined) {
Function.prototype.bind = (function (slice) {
// (C) WebReflection - Mit Style License
function bind(context) {
var self = this; // "trapped" function reference
// only if there is more than an argument
// we are interested into more complex operations
// this will speed up common bind creation
// avoiding useless slices over arguments
if (1 < arguments.length) {
// extra arguments to send by default
var $arguments = slice.call(arguments, 1);
return function () {
return self.apply(
context,
// thanks @kangax for this suggestion
arguments.length ?
// concat arguments with those received
$arguments.concat(slice.call(arguments)) :
// send just arguments, no concat, no slice
$arguments
);
};
}
// optimized callback
return function () {
// speed up when function is called without arguments
return arguments.length ? self.apply(context, arguments) : self.call(context);
};
}

// the named function
return bind;

} (Array.prototype.slice));
}

关于javascript - HTML5 的 Canvas + Javascript 代码在 iOS 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10724775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com