OSDN Git Service

辛夷祭初日の緊急修正多数。
[h58pcdgame/GameScriptCoreLibrary.git] / www / corelib / coresubf.js
index 13ff8a9..cfc92ce 100644 (file)
-
-function createAudio(name)
-{
-       //拡張子も含めて指定
-       return new Audio(URL_PCD_Audio + name);
-}
-
-function createImage(name)
-{
-       //拡張子も含めて指定
-       var img = document.createElement('img');
-       img.src = "./images/" + name;
-       return img;
-}
-
-function createCanvas(id, width, height, x, y, z, parent)
-{
-       //識別名idで
-       //width * heightの大きさのCanvasを
-       //(x,y,z)に生成する。
-       //parentには、Canvasタグを包含することになるDOMオブジェクトのidを指定する。
-       var canvas = document.createElement("canvas");
-
-       canvas.id = id;
-       
-       parent.appendChild(canvas);
-
-       canvas.style.position = "absolute";
-       canvas.style.top = y + "px";
-       canvas.style.left = x + "px";
-       canvas.style.zIndex = z;
-
-       canvas.width = width;
-       canvas.height = height;
-
-       return canvas;
-}
-
-//parent にまMainAreaを指定。nullにした場合は後で手動で追加する
-function createMessageBox(id, width, height, x, y, parent, color, foreColor, margin)
-{
-       if(color == undefined) color = "#000";
-       if(foreColor == undefined) foreColor = "#fff";
-       if(margin == undefined) margin = 16;
-       
-       var base = document.createElement("div");
-       base.style.opacity = "0.7";
-       base.style.top = y + "px";
-       base.style.left = x + "px";
-       base.style.backgroundColor = color;
-       base.style.color = foreColor;
-       base.style.position = "absolute";
-       base.style.border = "1px " + foreColor + " solid";
-       base.style.overflow = "hidden";
-       base.style.fontSize = "24px";
-       base.style.width = width + "px";
-       base.style.height = height + "px";
-       base.style.zIndex = "100";
-       base.id = id;
-       
-       var p = document.createElement("div");
-       p.style.position = "absolute";
-       p.style.padding = margin + "px";
-       p.style.width = (width - (margin * 2)) + "px";
-       p.style.bottom = "0";
-       p.style.wordBreak = "break-all";
-       p.className = "messageBoxInside";
-       base.appendChild(p);
-       
-       var ar = document.createElement("div");
-       ar.style.position = "absolute";
-       ar.style.bottom = "0";
-       ar.style.right = "0";
-       ar.style.padding = "4px";
-       //ar.style.width = "24px";
-       //ar.style.height = "16px";
-       ar.innerText = "▼";
-       ar.className = "messageBoxArrow";
-       base.appendChild(ar);
-       
-       if(parent)
-       {
-               parent.appendChild(base);
-       }
-       return base;
-}
-
-function changeMessageBox(box, message, showArrow)
-{
-       if(showArrow == undefined) showArrow = false;
-       for(var i = 0; i < box.childNodes.length; i++)
-       {
-               var element = box.childNodes[i];
-               if(element.className == "messageBoxInside")
-               {
-                       element.innerText = message;
-                       //element.style.top = (parseInt(box.style.height.slice(0, box.style.height.length - 2)) - parseInt(element.style.height.slice(0, element.style.height.length - 2))) + "px";     //"px"は削除される
-                       //console.log(box.style.height.slice(0, box.style.height.length - 2) + "  " + element.style.height.slice(0, element.style.height.length - 2));
-                       
-               }else if(element.className == "messageBoxArrow")
-               {
-                       element.style.display = (showArrow && mainManager.tickCount % 30 < 15) ? "block" : "none";
-               }
-       }
-}
-
-function createDOMObject(typestr, idstr, parentidstr)
-{
-       dobj = document.createElement(typestr);
-       parentObj = document.getElementById(parentidstr);
-       
-       dobj.id = idstr;
-       parentObj.appendChild(dobj);
-       
-       for(;;){
-               if(document.getElementById(idstr)){
-                       break;
-               }
-       }
-       
-       return dobj;
-}
-
-function destroyDOMObjectByID(id)
-{
-       //識別名idのDOMオブジェクトを破棄する。
-       object = document.getElementById(id);
-       parentObj = object.parentNode;
-
-       parentObj.removeChild(object);
-}
-
-function removeObjectFromArray(anArray, anObject)
-{
-       var ret = false;
-       //anArray中にある全てのanObjectを削除し、空いた部分は前につめる。
-       for(var i = 0; i < anArray.length; i++){
-               if(anArray[i] == anObject){
-                       anArray.splice(i, 1);
-                       ret = true;
-                       i--;
-               }
-       }
-       return ret;
-}
-
-function removeAnObjectFromArray(anArray, anObject)
-{
-       var ret = false;
-       //anArray中にある最初のanObjectを削除し、空いた部分は前につめる。
-       for(var i = 0; i < anArray.length; i++){
-               if(anArray[i] == anObject){
-                       anArray.splice(i, 1);
-                       ret = true;
-                       break;
-               }
-       }
-       return ret;
-}
-
-function parseArrayToStringSource(anArray){
-       //戻り値をevalすると等価なオブジェクトを得ることができる。
-       //parseArrayToStringSource({1,"321a","abc",test:["cder","",554]});
-       //parseArrayToStringSource([1,"321a","abc",{a:"cder",0:"",1:554}]);
-       if(!anArray){
-               return "null";
-       }
-
-       var srcstr = "var t=";
-       
-       srcstr += parseArrayToStringSource_Sub(anArray);
-       
-       srcstr += ";t;";
-       
-       return srcstr;
-}
-
-function parseArrayToStringSource_Sub(anArray){
-       if(!anArray){
-               return "null";
-       }
-
-       var srcstr = "{";
-       
-       for(var k in anArray){
-               var v = anArray[k];
-               var t = Object.prototype.toString.call(v);
-               if(v instanceof Array){
-                       srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";
-               } else if(!isNaN(v) && v.toString().replace(/\s+/g, "").length > 0){
-                       //isNaNだけでは数値判定できないので、文字列化後の空白文字を削除した長さも検査している。
-                       srcstr += k + ":" + v + ",";
-               } else if(t == "[object String]"){
-                       //文字列として変換
-                       srcstr += k + ":'" + v + "',";
-               } else if(t == "[object Object]"){
-                       srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";
-               } else{
-                       srcstr += k + ":undefined,";
-               }
-       }
-
-       if(srcstr.charAt(srcstr.length - 1) == ","){
-               //最後の余計なカンマを削除
-               srcstr = srcstr.slice(0, srcstr.length - 1);
-       }
-       srcstr += "}";
-       
-       return srcstr;
-}
-
-function isValidResponseText(res)
-{
-       //phpからのレスポンスにエラーが含まれていないかをチェックする。
-       if(res.indexOf("Warning") == -1){
-               if(res.indexOf("error") == -1){
-                       return true;
-               }
-       }
-       alert("サーバースクリプトがエラーを返しました。:" + res);
-       mainManager.stopStage();
-       return false;
-}
-
-function getRandomInteger(max){
-       return Math.floor(Math.random() * max+1)
-}
-
-//赤色の忠告ボックスを表示
-function showAlert(manager, message)
-{
-       var w = new TextWidgetClass(manager, [message, false, false, false, 'red']);
-       w.wBox.style.height = 64 + "px";
-       w.wBox.style.top = 406 + "px";
-       manager.addWidget(w);
-       window.setTimeout(function(){manager.removeWidget(w)}, 500);
-}
+\r
+function createAudio(name)\r
+{\r
+       //拡張子も含めて指定\r
+       return new Audio(URL_PCD_Audio + name);\r
+}\r
+\r
+function createImage(name)\r
+{\r
+       //拡張子も含めて指定\r
+       var img = document.createElement('img');\r
+       img.src = "./images/" + name;\r
+       return img;\r
+}\r
+\r
+function createCanvas(id, width, height, x, y, z, parent)\r
+{\r
+       //識別名idで\r
+       //width * heightの大きさのCanvasを\r
+       //(x,y,z)に生成する。\r
+       //parentには、Canvasタグを包含することになるDOMオブジェクトのidを指定する。\r
+       var canvas = document.createElement("canvas");\r
+\r
+       canvas.id = id;\r
+       \r
+       parent.appendChild(canvas);\r
+\r
+       canvas.style.position = "absolute";\r
+       canvas.style.top = y + "px";\r
+       canvas.style.left = x + "px";\r
+       canvas.style.zIndex = z;\r
+\r
+       canvas.width = width;\r
+       canvas.height = height;\r
+\r
+       return canvas;\r
+}\r
+\r
+//parent にまMainAreaを指定。nullにした場合は後で手動で追加する\r
+function createMessageBox(id, width, height, x, y, parent, color, foreColor, margin)\r
+{\r
+       if(color == undefined) color = "#000";\r
+       if(foreColor == undefined) foreColor = "#fff";\r
+       if(margin == undefined) margin = 16;\r
+       \r
+       var base = document.createElement("div");\r
+       base.style.opacity = "0.7";\r
+       base.style.top = y + "px";\r
+       base.style.left = x + "px";\r
+       base.style.backgroundColor = color;\r
+       base.style.color = foreColor;\r
+       base.style.position = "absolute";\r
+       base.style.border = "1px " + foreColor + " solid";\r
+       base.style.overflow = "hidden";\r
+       base.style.fontSize = "24px";\r
+       base.style.width = width + "px";\r
+       base.style.height = height + "px";\r
+       base.style.zIndex = "100";\r
+       base.id = id;\r
+       \r
+       var p = document.createElement("div");\r
+       p.style.position = "absolute";\r
+       p.style.padding = margin + "px";\r
+       p.style.width = (width - (margin * 2)) + "px";\r
+       p.style.bottom = "0";\r
+       p.style.wordBreak = "break-all";\r
+       p.className = "messageBoxInside";\r
+       base.appendChild(p);\r
+       \r
+       var ar = document.createElement("div");\r
+       ar.style.position = "absolute";\r
+       ar.style.bottom = "0";\r
+       ar.style.right = "0";\r
+       ar.style.padding = "4px";\r
+       //ar.style.width = "24px";\r
+       //ar.style.height = "16px";\r
+       ar.innerText = "▼";\r
+       ar.className = "messageBoxArrow";\r
+       base.appendChild(ar);\r
+       \r
+       if(parent)\r
+       {\r
+               parent.appendChild(base);\r
+       }\r
+       return base;\r
+}\r
+\r
+function changeMessageBox(box, message, showArrow)\r
+{\r
+       if(showArrow == undefined) showArrow = false;\r
+       for(var i = 0; i < box.childNodes.length; i++)\r
+       {\r
+               var element = box.childNodes[i];\r
+               if(element.className == "messageBoxInside")\r
+               {\r
+                       element.innerText = message;\r
+                       //element.style.top = (parseInt(box.style.height.slice(0, box.style.height.length - 2)) - parseInt(element.style.height.slice(0, element.style.height.length - 2))) + "px";     //"px"は削除される\r
+                       //console.log(box.style.height.slice(0, box.style.height.length - 2) + "  " + element.style.height.slice(0, element.style.height.length - 2));\r
+                       \r
+               }else if(element.className == "messageBoxArrow")\r
+               {\r
+                       element.style.display = (showArrow && mainManager.tickCount % 30 < 15) ? "block" : "none";\r
+               }\r
+       }\r
+}\r
+\r
+function createDOMObject(typestr, idstr, parentidstr)\r
+{\r
+       dobj = document.createElement(typestr);\r
+       parentObj = document.getElementById(parentidstr);\r
+       \r
+       dobj.id = idstr;\r
+       parentObj.appendChild(dobj);\r
+       \r
+       for(;;){\r
+               if(document.getElementById(idstr)){\r
+                       break;\r
+               }\r
+       }\r
+       \r
+       return dobj;\r
+}\r
+\r
+function destroyDOMObjectByID(id)\r
+{\r
+       //識別名idのDOMオブジェクトを破棄する。\r
+       object = document.getElementById(id);\r
+       parentObj = object.parentNode;\r
+\r
+       parentObj.removeChild(object);\r
+}\r
+\r
+function removeObjectFromArray(anArray, anObject)\r
+{\r
+       var ret = false;\r
+       //anArray中にある全てのanObjectを削除し、空いた部分は前につめる。\r
+       for(var i = 0; i < anArray.length; i++){\r
+               if(anArray[i] == anObject){\r
+                       anArray.splice(i, 1);\r
+                       ret = true;\r
+                       i--;\r
+               }\r
+       }\r
+       return ret;\r
+}\r
+\r
+function removeAnObjectFromArray(anArray, anObject)\r
+{\r
+       var ret = false;\r
+       //anArray中にある最初のanObjectを削除し、空いた部分は前につめる。\r
+       for(var i = 0; i < anArray.length; i++){\r
+               if(anArray[i] == anObject){\r
+                       anArray.splice(i, 1);\r
+                       ret = true;\r
+                       break;\r
+               }\r
+       }\r
+       return ret;\r
+}\r
+\r
+function parseArrayToStringSource(anArray){\r
+       //戻り値をevalすると等価なオブジェクトを得ることができる。\r
+       //parseArrayToStringSource({1,"321a","abc",test:["cder","",554]});\r
+       //parseArrayToStringSource([1,"321a","abc",{a:"cder",0:"",1:554}]);\r
+       if(!anArray){\r
+               return "null";\r
+       }\r
+\r
+       var srcstr = "var t=";\r
+       \r
+       srcstr += parseArrayToStringSource_Sub(anArray);\r
+       \r
+       srcstr += ";t;";\r
+       \r
+       return srcstr;\r
+}\r
+\r
+function parseArrayToStringSource_Sub(anArray){\r
+       if(!anArray){\r
+               return "null";\r
+       }\r
+\r
+       var srcstr = "{";\r
+       \r
+       for(var k in anArray){\r
+               var v = anArray[k];\r
+               var t = Object.prototype.toString.call(v);\r
+               if(v instanceof Array){\r
+                       srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";\r
+               } else if(!isNaN(v) && v.toString().replace(/\s+/g, "").length > 0){\r
+                       //isNaNだけでは数値判定できないので、文字列化後の空白文字を削除した長さも検査している。\r
+                       srcstr += k + ":" + v + ",";\r
+               } else if(t == "[object String]"){\r
+                       //文字列として変換\r
+                       srcstr += k + ":'" + v + "',";\r
+               } else if(t == "[object Object]"){\r
+                       srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";\r
+               } else{\r
+                       srcstr += k + ":undefined,";\r
+               }\r
+       }\r
+\r
+       if(srcstr.charAt(srcstr.length - 1) == ","){\r
+               //最後の余計なカンマを削除\r
+               srcstr = srcstr.slice(0, srcstr.length - 1);\r
+       }\r
+       srcstr += "}";\r
+       \r
+       return srcstr;\r
+}\r
+\r
+function isValidResponseText(res)\r
+{\r
+       //phpからのレスポンスにエラーが含まれていないかをチェックする。\r
+       if(res.indexOf("Warning") == -1){\r
+               if(res.indexOf("error") == -1){\r
+                       return true;\r
+               }\r
+       }\r
+       alert("サーバースクリプトがエラーを返しました。:" + res);\r
+       mainManager.stopStage();\r
+       return false;\r
+}\r
+\r
+function getRandomInteger(max){\r
+       return Math.floor(Math.random() * max+1)\r
+}\r
+\r
+//赤色の忠告ボックスを表示\r
+function showAlert(manager, message)\r
+{\r
+       var w = new TextWidgetClass(manager, [message, false, false, false, 'red']);\r
+       w.wBox.style.height = 64 + "px";\r
+       w.wBox.style.top = 406 + "px";\r
+       manager.addWidget(w);\r
+       window.setTimeout(function(){manager.removeWidget(w)}, 500);\r
+}\r