• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#objective-cqtwindows誰得cocoapythonphprubygameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

JavaScriptを色々あれこれしようとするがひたすら失敗を繰り返している


Commit MetaInfo

Révision34 (tree)
l'heure2016-11-29 22:45:29
Auteurtakoyaki_umaaaa

Message de Log

ファイル保存,読み込み対応

Change Summary

Modification

--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 33)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 34)
@@ -32,13 +32,18 @@
3232 this.dropinitsize = 100.0; // File dropで作成する Elementの長辺の長さ
3333 }
3434 initDOMobj() {
35- if (null != this.DOMobject) {
35+ if (null != this.DOMbase) {
3636 this.debuglog('initDOMobj() Clear the reference to DOM element');
3737 this.DOMobject.removeEventListener('mousedown', this.onMouseDown.bind(this), false);
38- document.getElementById('DispField').removeChild(this.DOMobject);
38+
39+ this.DOMbase.removeChild(this.DOMobject);
3940 this.DOMobject.outerHTML = "";
4041 delete this.DOMobject;
4142 this.DOMobject = null;
43+ document.getElementById('DispField').removeChild(this.DOMbase);
44+ this.DOMbase.outerHTML = "";
45+ delete this.DOMbase;
46+ this.DOMbase = null;
4247 }
4348 }
4449
@@ -200,24 +205,34 @@
200205 this.debuglog('createFromElement() ele=' + ele);
201206
202207 this.DOMbase = ele;
208+
203209 this.type = (null != ele.nodeName.match(/IMG/)) ? 'imagebox' : 'textbox';
204210 this.x = parseInt(ele.style.left);
205211 this.y = parseInt(ele.style.top);
206212 this.width = parseInt(ele.style.width);
207213 this.height = parseInt(ele.style.height);
208- this.originalWidth = ele.dataset.orgwidth;
209- this.originalHeight = ele.dataset.orgheight;
210214 this.ObjID = ele.dataset.objid;
211215 this.degree = ele.dataset.degree;
212216 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
213217
218+ if( ele.children.length < 1 ){
219+ console.error('保存ファイルから前回の状態を復元できません 要素の構成エラー 表示に必要な要素の情報が欠けている\nobjid=' + ele.dataset.objid + ', className=' + ele.className);
220+ return;
221+ }
222+ this.DOMobject = ele.children[0];
223+ if( parseInt(this.DOMbase.dataset.objid) != parseInt(this.DOMobject.dataset.objid) ){
224+ console.error('\
225+保存ファイルから前回の状態を復元できません 要素の構成エラー 指定要素がずれています\n\
226+base objid=' + this.DOMbase.dataset.objid + ', className=' + this.DOMbase.className + '\n\
227+disp objid=' + this.DOMobject.dataset.objid + ', className=' + this.DOMobject.className);
228+ return;
229+ }
230+ this.originalWidth = this.DOMobject.dataset.orgwidth;
231+ this.originalHeight = this.DOMobject.dataset.orgheight;
214232 // 画像・テキストは既にelementに読み込み済み
215233 // treeにも入っており、更新する必要もないのでこれで完了
216234 }
217235
218-
219-
220-
221236 // DIV box 移動 (移動先確定後の移動)
222237 // ※ Drag中の表示は別で行っている
223238 movebox(x, y) {
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/ObjIDMgr.js (revision 33)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/ObjIDMgr.js (revision 34)
@@ -81,7 +81,7 @@
8181 this.clear();
8282
8383 // 復元されたDispObj elementを取得
84- let listEle = document.getElementsByClassName('DispObj');
84+ let listEle = document.getElementsByClassName('DispBase');
8585
8686 this.debuglog('読み込み処理 DOM element設定から内部instanceを作成\nElement=' + listEle.length);
8787
@@ -138,7 +138,7 @@
138138 // 要素を DOM treeから 切り離すことで表示されないようにする
139139 if (id < this.ObjIDLen) {
140140 let displayField = document.getElementById('DispField');
141- displayField.removeChild(this.ObjIDarray[id].DOMobject);
141+ displayField.removeChild(this.ObjIDarray[id].DOMbase);
142142 }
143143 }
144144 } // class CObjIDMgr
--- HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 33)
+++ HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 34)
@@ -32,13 +32,18 @@
3232 this.dropinitsize = 100.0; // File dropで作成する Elementの長辺の長さ
3333 }
3434 initDOMobj() {
35- if (null != this.DOMobject) {
35+ if (null != this.DOMbase) {
3636 this.debuglog('initDOMobj() Clear the reference to DOM element');
3737 this.DOMobject.removeEventListener('mousedown', this.onMouseDown.bind(this), false);
38- document.getElementById('DispField').removeChild(this.DOMobject);
38+
39+ this.DOMbase.removeChild(this.DOMobject);
3940 this.DOMobject.outerHTML = "";
4041 delete this.DOMobject;
4142 this.DOMobject = null;
43+ document.getElementById('DispField').removeChild(this.DOMbase);
44+ this.DOMbase.outerHTML = "";
45+ delete this.DOMbase;
46+ this.DOMbase = null;
4247 }
4348 }
4449
@@ -200,24 +205,34 @@
200205 this.debuglog('createFromElement() ele=' + ele);
201206
202207 this.DOMbase = ele;
208+
203209 this.type = (null != ele.nodeName.match(/IMG/)) ? 'imagebox' : 'textbox';
204210 this.x = parseInt(ele.style.left);
205211 this.y = parseInt(ele.style.top);
206212 this.width = parseInt(ele.style.width);
207213 this.height = parseInt(ele.style.height);
208- this.originalWidth = ele.dataset.orgwidth;
209- this.originalHeight = ele.dataset.orgheight;
210214 this.ObjID = ele.dataset.objid;
211215 this.degree = ele.dataset.degree;
212216 this.DOMbase.addEventListener('mousedown', this.onMouseDown.bind(this), false);
213217
218+ if( ele.children.length < 1 ){
219+ console.error('保存ファイルから前回の状態を復元できません 要素の構成エラー 表示に必要な要素の情報が欠けている\nobjid=' + ele.dataset.objid + ', className=' + ele.className);
220+ return;
221+ }
222+ this.DOMobject = ele.children[0];
223+ if( parseInt(this.DOMbase.dataset.objid) != parseInt(this.DOMobject.dataset.objid) ){
224+ console.error('\
225+保存ファイルから前回の状態を復元できません 要素の構成エラー 指定要素がずれています\n\
226+base objid=' + this.DOMbase.dataset.objid + ', className=' + this.DOMbase.className + '\n\
227+disp objid=' + this.DOMobject.dataset.objid + ', className=' + this.DOMobject.className);
228+ return;
229+ }
230+ this.originalWidth = this.DOMobject.dataset.orgwidth;
231+ this.originalHeight = this.DOMobject.dataset.orgheight;
214232 // 画像・テキストは既にelementに読み込み済み
215233 // treeにも入っており、更新する必要もないのでこれで完了
216234 }
217235
218-
219-
220-
221236 // DIV box 移動 (移動先確定後の移動)
222237 // ※ Drag中の表示は別で行っている
223238 movebox(x, y) {
--- HtmlDrawApp/HTMLDrawApp/js/ObjIDMgr.js (revision 33)
+++ HtmlDrawApp/HTMLDrawApp/js/ObjIDMgr.js (revision 34)
@@ -81,7 +81,7 @@
8181 this.clear();
8282
8383 // 復元されたDispObj elementを取得
84- let listEle = document.getElementsByClassName('DispObj');
84+ let listEle = document.getElementsByClassName('DispBase');
8585
8686 this.debuglog('読み込み処理 DOM element設定から内部instanceを作成\nElement=' + listEle.length);
8787
@@ -138,7 +138,7 @@
138138 // 要素を DOM treeから 切り離すことで表示されないようにする
139139 if (id < this.ObjIDLen) {
140140 let displayField = document.getElementById('DispField');
141- displayField.removeChild(this.ObjIDarray[id].DOMobject);
141+ displayField.removeChild(this.ObjIDarray[id].DOMbase);
142142 }
143143 }
144144 } // class CObjIDMgr