2 function createAudio(name)
5 return new Audio(URL_PCD_Audio + name);
8 function createCanvas(id, width, height, x, y, z, parent)
11 //width * heightの大きさのCanvasを
13 //parentには、Canvasタグを包含することになるDOMオブジェクトのidを指定する。
14 var canvas = document.createElement("canvas");
18 parent.appendChild(canvas);
20 canvas.style.position = "absolute";
21 canvas.style.top = y + "px";
22 canvas.style.left = x + "px";
23 canvas.style.zIndex = z;
26 canvas.height = height;
31 function createMessageBox(id, width, height, x, y, parent, color, foreColor, z)
33 if(color == undefined) color = "#000";
34 if(foreColor == undefined) foreColor = "#fff";
36 var base = document.createElement("div");
37 base.style.opacity = "0.7";
38 base.style.top = y + "px";
39 base.style.left = x + "px";
40 base.style.backgroundColor = color;
41 base.style.color = foreColor;
42 base.style.position = "absolute";
43 base.style.border = "1px " + foreColor + " solid";
44 base.style.overflow = "hidden";
45 base.style.fontSize = "32px";
46 base.style.width = width + "px";
47 base.style.height = height + "px";
48 base.style.zIndex = "100";
51 var p = document.createElement("div");
52 p.style.position = "absolute";
53 p.style.padding = "16px";
54 p.style.width = (width - 32) + "px";
56 p.style.wordBreak = "break-all";
57 p.className = "messageBoxInside";
60 var ar = document.createElement("div");
61 ar.style.position = "absolute";
62 ar.style.bottom = "0";
64 ar.style.padding = "4px";
65 //ar.style.width = "24px";
66 //ar.style.height = "16px";
68 ar.className = "messageBoxArrow";
71 parent.appendChild(base);
75 function changeMessageBox(box, message, showArrow)
77 if(showArrow == undefined) showArrow = false;
78 for(var i = 0; i < box.childNodes.length; i++)
80 var element = box.childNodes[i];
81 if(element.className == "messageBoxInside")
83 element.innerText = message;
84 //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"は削除される
85 //console.log(box.style.height.slice(0, box.style.height.length - 2) + " " + element.style.height.slice(0, element.style.height.length - 2));
87 }else if(element.className == "messageBoxArrow")
89 element.style.display = (showArrow && mainManager.tickCount % 30 < 15) ? "block" : "none";
94 function createDOMObject(typestr, idstr, parentidstr)
96 dobj = document.createElement(typestr);
97 parentObj = document.getElementById(parentidstr);
100 parentObj.appendChild(dobj);
103 if(document.getElementById(idstr)){
111 function destroyDOMObjectByID(id)
113 //識別名idのDOMオブジェクトを破棄する。
114 object = document.getElementById(id);
115 parentObj = object.parentNode;
117 parentObj.removeChild(object);
120 function removeObjectFromArray(anArray, anObject)
122 //anArray中にある全てのanObjectを削除し、空いた部分は前につめる。
123 for(var i = 0; i < anArray.length; i++){
124 if(anArray[i] == anObject){
125 anArray.splice(i, 1);
131 function parseArrayToStringSource(anArray){
132 //戻り値をevalすると等価なオブジェクトを得ることができる。
133 //parseArrayToStringSource({1,"321a","abc",test:["cder","",554]});
134 //parseArrayToStringSource([1,"321a","abc",{a:"cder",0:"",1:554}]);
139 var srcstr = "var t=";
141 srcstr += parseArrayToStringSource_Sub(anArray);
148 function parseArrayToStringSource_Sub(anArray){
155 for(var k in anArray){
157 var t = Object.prototype.toString.call(v);
158 if(v instanceof Array){
159 srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";
160 } else if(!isNaN(v) && v.toString().replace(/\s+/g, "").length > 0){
161 //isNaNだけでは数値判定できないので、文字列化後の空白文字を削除した長さも検査している。
162 srcstr += k + ":" + v + ",";
163 } else if(t == "[object String]"){
165 srcstr += k + ":'" + v + "',";
166 } else if(t == "[object Object]"){
167 srcstr += k + ":" + parseArrayToStringSource_Sub(v) + ",";
169 srcstr += k + ":undefined,";
173 if(srcstr.charAt(srcstr.length - 1) == ","){
175 srcstr = srcstr.slice(0, srcstr.length - 1);
182 function isValidResponseText(res)
184 //phpからのレスポンスにエラーが含まれていないかをチェックする。
185 if(res.indexOf("Warning") == -1){
186 if(res.indexOf("error") == -1){
190 alert("サーバースクリプトがエラーを返しました。:" + res);
191 mainManager.stopStage();