赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 4368 |
最后登录 | 2016-9-9 |
在线时间 | 48 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 48 小时
- 注册时间
- 2010-10-26
- 帖子
- 17
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
因为官方教程的API描述太过模糊,所以想写个详细的API说明
说明由源代码和描述构成,为了降低门槛,所以会尽量的对其进行解释,想听听你们的建议
API详细说明
Utils对象
Utils.isOptionValid 方法
Utils.isOptionValid = function(name) {
return location.search.slice(1).split('&').contains(name);
};
location存放的是你项目所在位置的URL,如file:///D:/RPGMV/Games/test/index.html?test,其中D:/RPGMV/Games/test/为该项目的文件夹,test为项目名
location.search会返回一个?x,其中x为你的项目名
location.search.slice(0)与location.search.slice(1)分别为?x与x
location.search.slice(1).split('&')会返回你的项目名
contains是对原生对象string与array的扩展,功能都是对输入的参数进行比较,如果大于等于,就返回true否则返回false
Utils.isNwjs 方法
Utils.isNwjs = function() {
return typeof require === 'function' && typeof process === 'object';
};
如果require与process分别是函数和对象,那么就返回true,整个后台脚本均无这两个参数的声明
Utils.isMobileDevice 方法
Utils.isMobileDevice = function() {
var r = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i;
return !!navigator.userAgent.match(r);
};
将r初始化为该正则表达式,这个正则表达式的意思是,不区分大小写,且匹配上面任意一项即为真
navigator.userAgent为字符串,内容为浏览器版本,navigator.userAgent.match(r)则意味着以正则表达式r的规则进行检索,如果不与上面的匹配,返回null
!!是将其强制转换为布尔值
Utils.isAndroidChrome 方法
Utils.isAndroidChrome = function() {
var agent = navigator.userAgent;
return !!(agent.match(/Android/) && agent.match(/Chrome/));
};
同时匹配Android与Chrome即为真,即检测浏览器是否为安卓版的 Chrome 浏览器
Utils.canReadGameFiles 方法
Utils.canReadGameFiles = function() {
var scripts = document.getElementsByTagName('script');
var lastScript = scripts[scripts.length - 1];
var xhr = new XMLHttpRequest();
try {
xhr.open('GET', lastScript.src);
xhr.overrideMimeType('text/javascript');
xhr.send();
return true;
} catch (e) {
return false;
}
};
将所有脚本元素放入scripts变量中,然后将最末尾的脚本元素放入lastScript里,将ajax实例化
通过overrideMimeType指定接受的资源以什么方式解析,在这里就是按照js脚本解析(因为参数为'text/javascript'),如果没有异常,那么send()后返回true,否则返回false
Utils.rgbToCssColor 方法
Utils.rgbToCssColor = function(r, g, b) {
r = Math.round(r);
g = Math.round(g);
b = Math.round(b);
return 'rgb(' + r + ',' + g + ',' + b + ')';
};
Math.round()方法对输入的参数进行四舍五入,如3.6==4;3.1==3;
最后返回形如:rgb(0,0,255)的参数,该参数用于css的color属性
isMobileSafari 方法未在官方脚本内定义
|
|