Files
youlegames/codes/games/client/Projects/tgly/js/Func.js
2026-02-04 23:47:45 +08:00

767 lines
17 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
var Func=Func||{};
var bForcepc = fGetQuery("dv") == "pc";
function fBrowserRedirect(){
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if(bIsIpad||bIsIphoneOs){
return 1;
}
if(bIsAndroid){
return 2;
}
if(bIsWM){
return 3;
}
return 4;
}
function fGetQuery(name){//获取参数值
var sUrl = window.location.search.substr(1);
var r = sUrl.match(new RegExp("(^|&)" + name + "=([^&]*)(&|$)"));
return (r == null ? null : unescape(r[2]));
}
Func.filter = function(str) {
for (var i = 0; i < arrBan.length; i++) {
// 创建一个正则表达式
//var r = new RegExp(arrBan[i], "ig");
//return true;
//str = str.replace(r, "*");
//if(r.test(str)){
//return true;
//}
if(str.indexOf(arrBan[i])>=0){
return true;
}
}
return false;
}
String.prototype.gblen = function() {
var len = 0;
for (var i=0; i<this.length; i++) {
if (this.charCodeAt(i)>127 || this.charCodeAt(i)==94) {
len += 2;
} else {
len ++;
}
}
return len;
}
Func.strisNull =function( str ){
if ( str == "" ) return true;
var regu = "^[ ]+$";
var re = new RegExp(regu);
return re.test(str);
}
Func.setTextArea = function(id,isResize,maxlen){//精灵id是否禁用大小调整最大输入长度
var obj = null;
obj = gameabc_face.getdiv("div"+id);
if(isResize){
obj.style.resize = "none";
}
if(maxlen){
try{
maxlen = Number(maxlen);
}catch(e){
return ;
}
obj.maxLength = maxlen;
}
obj = null;
}
Func.setInput = function(id,maxlen){//精灵id是否禁用大小调整最大输入长度
other_setdom("div"+id,"maxlength",maxlen);
}
Func.AjaxHttp = function(_data, func_callbackSucc, func_callbackFail, obj_inputmsg)
{
var obj_config = {};
obj_config.url = GameData.AjaxUrl;
obj_config.callbackdata = obj_inputmsg;
obj_config.data = JSON.stringify(_data);
obj_config.type = "POST";
obj_config.success = func_callbackSucc;
obj_config.error = func_callbackFail;
min_http(obj_config);
}
Func.subString=function(str, len, hasDot)
{
var newLength = 0;
var newStr = "";
var chineseRegex = /[^\x00-\xff]/g;
var singleChar = "";
var strLength = str.replace(chineseRegex,"**").length;
for(var i = 0;i < strLength;i++)
{
singleChar = str.charAt(i).toString();
if(singleChar.match(chineseRegex) != null)
{
newLength += 2;
}
else
{
newLength++;
}
if(newLength > len)
{
break;
}
newStr += singleChar;
}
if(hasDot && strLength > len)
{
newStr += "...";
}
return newStr;
}
//设置普通震动
Func.vibrator=function(time){
try{
if(GameData.appstate){
window.settings.vibrator(time);
}
}catch(e){
}
}
//是否重复震动
Func.repeatvibrator=function(repeat){
try{
if(GameData.appstate){
window.settings.repeatvibrator(repeat);
}
}catch(e){
}
}
//取消震动
Func.canclevibrator=function(){
try{
window.settings.canclevibrator();
}catch(e){
}
}
//横竖屏 orientation 1 为横屏 2 为竖屏
Func.orientation=function(Orientation){
try{
window.settings.orientation(Orientation);
}catch(e){
}
}
//通知
Func.notification=function(Ticker,title,content){
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数
//var Ticker//手机状态栏通知
//var title//标题
//var content//内容
try{
window.settings.notification(Ticker,title,content);
}catch(e){
}
}
Func.sharefinend=function(sharefriend,type,webpageUrl,title,description){//1普通分享2截图分享3图片链接分享
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数 catch() 里面使用你自己的函数
switch(GameData.OS){
case 1://ios
try{
window.settings.friendsSharetypeUrlToptitleDescript(sharefriend,type,webpageUrl,title,description);
}catch(e){
//console.log("分享:"+"\ntype:"+type+"\nwebpageUrl:"+webpageUrl+"\ntitle:"+title+"\ndescription:"+description);
}
break;
case 2://Android
switch(type){
case 1://普通分享
try{
window.settings.friendsSharetypeUrlToptitleDescript(sharefriend,type,webpageUrl,title,description);
}catch(e){
//console.log("分享:"+"\ntype:"+type+"\nwebpageUrl:"+webpageUrl+"\ntitle:"+title+"\ndescription:"+description);
}
break;
case 2://截图分享
var _data={};
try{
var canvas1 = document.createElement("canvas");
canvas1.width=720,canvas1.height=405;
var g=canvas1.getContext("2d");
g.drawImage(iui.canvas,0,0,720,405);
var dataurl=canvas1.toDataURL("image/jpeg",0.5);
}catch(e){
//alert(e);
}
canvas1=null;
_data.name = sharefriend+dataurl;
var obj_config = {};
obj_config.url = "http://localhost:4477/testurl";
obj_config.callbackdata = null;
obj_config.data = JSON.stringify(_data);
obj_config.type = "POST";
obj_config.success = null;
obj_config.error = null;
min_http(obj_config);
break;
case 3://链接分享
try{
window.settings.sharephotourl(sharefriend,webpageUrl);
}catch(e){
//alert(e);
}
break;
}
break;
case 3://wp
break;
default:
break;
}
}
Func.ShotShare=function(type,obj_inputmsg,func_callbackSucc,func_callbackFail){
var _data={};
try{
var canvas1 = document.createElement("canvas");
canvas1.width=720,canvas1.height=405;
var g=canvas1.getContext("2d");
g.drawImage(iui.canvas,0,0,720,405);
var dataurl=canvas1.toDataURL("image/jpeg",0.5);
}catch(e){
// alert(e);
}
canvas1=null;
_data.name = type+dataurl;
var obj_config = {};
obj_config.url = "http://localhost:4477/testurl";
obj_config.callbackdata = obj_inputmsg;
obj_config.data = JSON.stringify(_data);
obj_config.type = "POST";
obj_config.success = func_callbackSucc;
obj_config.error = func_callbackFail;
min_http(obj_config);
}
Func.accreditlogin=function(){
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数 catch() 里面使用你自己的函数
try{
window.settings.accreditlogin();
//if(msgind==1){
//alert("调用授权");
//}
}catch(e){
//游客身份登入
//Func.visitorLogin();
sharelogin("gsr","http://pic.fxxz.com/up/2016-6/2016060511335249995.png","测试",1,"nanchang","jiangxi",213);
}
}
Func.visitorLogin = function(){
//游客身份登入,随机游客数据
GameData.isVisitor = true;
var WxInfo = Utl.getCookie(Utl.Config.visitorinfo);
if(WxInfo != null){
WxInfo = JSON.parse(WxInfo);
sharelogin(WxInfo.openid,WxInfo.headimgurl,WxInfo.nickname,WxInfo.sex,WxInfo.city,WxInfo.Province,WxInfo.unionid);
}else{
var ram = 100000+ifast_random(100000);
sharelogin(""+ram,"http://pic.fxxz.com/up/2016-6/2016060511335249995.png","游客"+ram,1,"nanchang","jiangxi",ram);
}
}
function sharelogin(openid,headimgurl,nickname,sex,city,Province,unionid){
//if(msgind==1){
// alert("授权回调:"+openid+"、"+headimgurl+"、"+nickname+"、"+sex+"、"+city+"、"+Province+"、"+unionid);
//}
//GameUI.StartLoad();
if(!headimgurl && !nickname){
//GameUI.OpenTips("授权失败,请重新授权!",ConstVal.Tips.time);
}else{
StartLoadData();
InputInfo={};
InputInfo.userid = unionid;
InputInfo.headimg = headimgurl;
InputInfo.name = nickname;
setWxInfo(nickname,unionid,headimgurl);
getInfo();
}
}
function sharesuccess(success,type){//分享成功回调
//if(msgind==1){
//alert("分享成功回调:"+success);
//}
success = Number(success);
type = Number(type);
}
Func.getDate = function(){
//var today=new Date();
//var h=today.getHours();
//var m=today.getMinutes();
//var s=today.getSeconds();
//if(m<10){
//m="0"+m;
//}
//if(s<10){
//s="0"+s;
//}
//return h+":"+m+":"+s;
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
if(m<10){
m="0"+m;
}
if(h<10){
h="0"+h;
}
return [h,m];
}
Func.exit=function(){
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数 catch() 里面使用你自己的函数
try{
window.settings.finsh();
}catch(e){
}
}
function phonestate(state){//通话状态改变是调用
state=Number(state);
}
Func.getQueryString=function(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
//function appservice(service){
//logmessage("切换状态:"+service,1);
//service = Number(service);
//if(GameData.isLogin){
//if(service==1){//切回
//GameData.appstate=true;
//Utl.TurnOnBgm(get_self(4,37,0,0,0));
//var exp = new Date();
//if(exp.getTime()-GameData.leaveTime>Max.reconnecttime){//超过重连时间
//if(Net.ws_tcp.readyState == WebSocket.CLOSED){
//logmessage("切回时已断线重连"+min_now());
//GameData.disType = true;
//GameData.ConnectType=false;
//GameData.NetType=1;
//Logic.TryConnect();
//}else if(Net.ws_tcp.readyState == WebSocket.OPEN){
//logmessage("切回时未断线手动断线"+min_now());
//GameData.ConnectType = false;
//GameData.NetType=1;
//Net.ws_tcp.close();
//}
//}else{
//window.clearTimeout(GameData.reconnectTimer);
//if(Desk.inDesk(C_Player.unionid)){
//Utl.UpdateScene();
//}
//}
//}else{//切出
//GameData.appstate=false;
//Utl.TurnOffAllSound();
//var exp = new Date();
//GameData.leaveTime = exp.getTime();
//logmessage("打开定时器"+min_now());
//GameData.reconnectTimer = setTimeout(function(){
//logmessage("定时器触发断线"+min_now());
//GameData.disType = true;
//GameData.ConnectType=true;
//Net.ws_tcp.close();
//},Max.reconnecttime);
//}
//}else{
//logmessage("未登录时切换前后台"+min_now(),1);
//}
//}
function appservice(service){
service = Number(service);
if(service==1){//切回
}else{//切出
}
}
Func.prepareAudio=function(){
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数 catch() 里面使用你自己的函数
try{
//关闭游戏背景音
window.settings.prepareaudio();
}catch(e){
//alert(e);
}
}
function getaudiourl(audiourl,time){//录音成功回调
//alert("录音成功:"+audiourl);
//打开游戏背景音
//-----------------------
if(Number(time)>0){
}
}
Func.mediaAudio=function(audiourl,type,v){
//因为游戏打包之前调用会报错所以要使用try{}catch{} try 里面 使用打包调用的函数 catch() 里面使用你自己的函数
if(GameData.appstate){
try{
window.settings.mediaTypeAudio(audiourl,type,v);
}catch(e){
//gameui_play_voice(v);
}
}
}
Func.up_imgurl=function(recid,photo){
try{
var input_data=[];
var input_obj={};
input_obj.photourl=photo;
input_obj.pid=String(recid);
input_data.push(input_obj);
input_data=JSON.stringify(input_data);
window.settings.getphoto(input_data);
}catch(e){
//if(recid==25||recid==112){
if(photo){
up_imgurl(recid,photo,1);
}else{
//up_imgurl(recid,"assets/bmp/00144.png",1);
}
//}else{
//up_imgurl(recid,"assets/bmp/00144.png",1);
//setTimeout(
//function(){
//if(photo){
//up_imgurl(recid,photo,1);
//}else{
//up_imgurl(recid,"assets/bmp/00144.png",1);
//}
//}
//,200);
//}
}
}
//var imglist=[];
function getphoto(photo){
//alert("getphoto回调"+photo);
var obj =strToJson(photo);
for(var i=0;i<obj.length;i++){
var pho=obj[i];
//logmessage("pid = "+pho.pid+" url= "+pho.photourl,1);
//var bTemp = true;
//for(var j=0;j<imglist.length;j++){
//if(imglist[j][0]==pho.pid){
//bTemp=false;
//imglist[j][0] = pho.pid;
//imglist[j][1] = pho.photourl;
//}
//}
//if(bTemp){
//imglist.push([pho.pid,pho.photourl]);
//}
//if(Number(pho.pid)==25||Number(pho.pid)==112){
if(pho.photourl){
up_imgurl(Number(pho.pid),pho.photourl,1);
}else{
}
//}else{
//up_imgurl(Number(pho.pid),"assets/bmp/00144.png",1);
//setTimeout(
//function(){
//if(pho.photourl){
//up_imgurl(Number(pho.pid),pho.photourl,1);
//}else{
//up_imgurl(Number(pho.pid),"assets/bmp/00144.png",1);
//}
//}
//,200);
//}
}
}
function strToJson(str){
var json = eval('(' + str + ')');
return json;
}
//调用手机默认浏览器打开链接
Func.browser=function(url){
try{
window.settings.browser(url);
}catch(e){
//alert(e);
}
}
//主动获取手机电量
Func.getbattery=function(){
try{
var battery=window.settings.getbattery();
return battery;
}catch(e){
//alert(e);
return -1;
}
}
//手机电量变化调用
function getBattery(Battery){
//GameData.Battery=Battery;
//if(GameData.Battery<=0.2){
//set_self(342,43,3,0,0);
//}else{
//set_self(342,43,2,0,0);
//}
}
//分享图片(链接)
Func.sharephotourl=function(sharetype,url){
try{
window.settings.sharephotourl(sharetype,url);
}catch(e){
//alert(e);
}
}
//获取网络类型 1 未连接网络 2 连接wifi 3 连接2G/3G/4G
Func.getnetwork=function(){
try{
var type = window.settings.getnetwork();
return type;
}catch(e){
//alert(e);
return -1;
}
}
//获取wifi信号ssidname wifi名称 signalLevel wifi信号强度 0-4 弱到强
Func.getwifisignalLevel=function(){
try{
window.settings.getwifisignalLevel();
}catch(e){
//alert(e);
}
}
//WiFi信号变化调用
function getwifiLevel(ssidname,signalLevel){
//GameData.WifiLevel=signalLevel;
//GameData.WifiLevel= Number(GameData.WifiLevel);
//switch(GameData.WifiLevel){
//case 0:
//set_self(340,43,1,0,0);
//break;
//case 1:
//case 2:
//set_self(340,43,2,0,0);
//break;
//case 3:
//case 4:
//set_self(340,43,3,0,0);
//break;
//}
}
//网络状况改变
function getnetwork(type){
type=Number(type);
//switch(type){
//case 1:
//break;
//case 2:
//set_self(340,43,3,0,0);
//Func.getwifisignalLevel();
//break;
//case 3:
//set_self(340,43,4,0,0);
//break;
//}
}
//播放声音
Func.play_wav = function(src,isloop){
//if(GameData.appstate ||(!GameData.appstate&&isloop==-1)){
switch(GameOS){
case 1:
try{
window.settings.srcIsloop(src,isloop);
}catch(e){
}
break;
default:
try{
play_wav(src,isloop);
}catch(e){
}
break;
}
//}
}
Func.getVersionState = function(){
//获取版本类型 用于判断版本是否高于服务器版本
//if(GameData.OS == 1){
try{
//苹果获取结果接口
return Number(window.settings.getcompareCode());
}catch(e){
return 0;
}
//}else {
//return 1;
//}
}
function playmediaAudio(){
//if(GameData.isLogin){
//var bgm = Utl.ReadData(Utl.Config.bgm);
//if(bgm==1){
//Utl.TurnOnBgm(get_self(4,37,0,0,0));
//}
//}
}
Func.startshake = function(){
//var shake = Utl.ReadData(Utl.Config.shake);
//if(shake==1){
//if(GameData.shakeID!=ConstVal.shakeList.nil){
//try{
//window.settings.startshake();
//}catch(e){
//}
//}
//}
}
Func.stopshake = function(){
try{
window.settings.stopshake();
}catch(e){
}
}
Func.switchshakeVoice = function(Voicetype){
try{
window.settings.SwitchShake(Voicetype);
}catch(e){
}
}
function shakeEnd(){//摇一摇回调
//Utl.shakeEvent();
}
Func.getchannelName = function(){//
try{
var name=window.settings.getchannelName();
if(name){
return name;
}else{
return "";
}
}catch(e){
return "";
}
}
Func.SwitchOverGameData = function(webtype, Gamedirectory,gamedownloadurl,data){//
try{
window.settings.SwitchOverGameData(webtype,Gamedirectory,gamedownloadurl,data);
}catch(e){
}
}
Func.backgameData = function(data){//
try{
window.settings.backgameData(data);
}catch(e){
}
}
function backgameData(){
//var data= {};
//data.roomcard = C_Player.roomcard;
//Func.backgameData(JSON.stringify(data));
}
function getWebdata(data){
//logmessage("收到数据:"+data,1);
//if(data){
//data = JSON.parse(data);
//C_Player.setRoomcard(data.roomcard);
//}
}