• 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évision35 (tree)
l'heure2016-12-01 19:25:51
Auteurtakoyaki_umaaaa

Message de Log

Canvas objectの上にframe objectを追加

Change Summary

Modification

--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/css/default.css (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/css/default.css (revision 35)
@@ -44,9 +44,17 @@
4444 /* キャンバス要素の定義 */
4545 #DispField{
4646 display:block;
47- width:400px; height:300px;
48- border:1px solid black;
49- margin: 10px;
47+ width:400px; height:300px;
48+ border: none;
49+ margin: 0; padding: 0;
50+ background-color: transparent;
51+ }
52+
53+ #FrameArea{
54+ display:block;
55+ width: 100%; height: 100%;
56+ border: 1px solid black;
57+ margin: 0; padding: 0;
5058 background-color: white;
5159 }
5260
@@ -61,6 +69,12 @@
6169 left:0; top:0;
6270 width: 100%; height: 100%;
6371 }
72+ div.DispObj {
73+ -webkit-user-select: text;
74+ -khtml-user-select: text;
75+ -moz-user-select: text;
76+ user-select: text;
77+ }
6478
6579
6680 /* パレットグループ要素の定義 */
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/index.html (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/index.html (revision 35)
@@ -10,9 +10,11 @@
1010 <body>
1111
1212 <div id="apparea" data-objid="apparea">
13- <!-- 編集領域 -->
14- <div id="DispField" data-objid="DisplayField" data-focus="true">
13+ <!-- Editting area from here --------------------- -->
14+ <div id="DispField" data-objid="DisplayField">
15+ <div id="FrameArea" data-objid="FrameArea"></div>
1516 </div>
17+ <!-- ------------------------------------ to here. -->
1618 <!-- 固定ボタン (選択要素の削除, 保存, …) -->
1719 <button type=button class="pal" data-objid="pal" data-palid="0" title="フォーカス中の要素を削除します">削除</button>
1820 <button type=button class="pal" data-objid="pal" data-palid="1" title="現在のパレット設定を保存します">設定保存</button>
@@ -199,6 +201,7 @@
199201 <script type="text/javascript" src="js/DispObj.js"></script>
200202 <script type="text/javascript" src="js/ObjIDMgr.js"></script>
201203 <script type="text/javascript" src="js/ThreadMessage.js"></script>
204+ <script type="text/javascript" src="js/framearea.js"></script>
202205 <script type="text/javascript" src="js/DisplayField.js"></script>
203206 <script type="text/javascript" src="js/apparea.js"></script>
204207 <script type="text/javascript" src="js/main.js"></script>
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DispObj.js (revision 35)
@@ -40,7 +40,7 @@
4040 this.DOMobject.outerHTML = "";
4141 delete this.DOMobject;
4242 this.DOMobject = null;
43- document.getElementById('DispField').removeChild(this.DOMbase);
43+ window.frameArea.DOMobject.removeChild(this.DOMbase);
4444 this.DOMbase.outerHTML = "";
4545 delete this.DOMbase;
4646 this.DOMbase = null;
@@ -192,7 +192,7 @@
192192 this.DOMbase.style.top = this.y.toString() + "px";
193193 this.DOMbase.style.width = this.width.toString() + "px";
194194 this.DOMbase.style.height = this.height.toString() + "px";
195- document.getElementById('DispField').appendChild(this.DOMbase);
195+ window.frameArea.DOMobject.appendChild(this.DOMbase);
196196
197197 this.debuglog("renderCreate() left=" + this.DOMbase.style.left
198198 + ", top=" + this.DOMbase.style.top
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DisplayField.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/DisplayField.js (revision 35)
@@ -9,6 +9,7 @@
99 this.DOMobject = dom;
1010 this.mouseMoveFunc = null;
1111 this.mouseUpFunc = null;
12+ this.objid = "DisplayField";
1213 }
1314
1415 debuglog(str) {
@@ -48,7 +49,23 @@
4849 setFieldData(text) {
4950 this.DOMobject.innerHTML = text;
5051 }
52+ /*
53+ clear() {
54+ this.debuglog("clear()");
55+ if (null != this.DOMobject) {
56+ this.DOMobject.removeEventListener('dragstart', this.onDragStart.bind(this), false);
57+ this.DOMobject.removeEventListener('dragover', this.onDragover.bind(this), false);
58+ this.DOMobject.removeEventListener('drop', this.onDrop.bind(this), false);
5159
60+ document.getElementById('apparea').removeChild(this.DOMobject);
61+ this.DOMobject.outerHTML = "";
62+ delete this.DOMobject;
63+ this.DOMobject = null;
64+ }
65+ this.mouseMoveFunc = null;
66+ this.mouseUpFunc = null;
67+ }
68+ */
5269
5370
5471 // Event handler -------------------
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/apparea.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/apparea.js (revision 35)
@@ -7,6 +7,11 @@
77 this.mouseMoveFunc = null;
88 this.mouseUpFunc = null;
99 }
10+ // 保存ファイルから編集エリア内容 (DispFieldの divとそこに連なるelement) を
11+ // 取得するための正規表現object取得
12+ getEditAreaRegexp() {
13+ return /<!-- Editting area from here --------------------- -->([\s\S]*?)<!-- ------------------------------------ to here. -->/;
14+ }
1015 debuglog(str) {
1116 debuglog("【appArea】" + str);
1217 }
@@ -25,7 +30,55 @@
2530
2631
2732 // 操作関数 -----------------------------------
33+ getFieldData() {
34+ // 表示情報取得
35+ let data = this.DOMobject.innerHTML;
36+ let editarea = data.match(this.getEditAreaRegexp())[0];
37+ if (null == editarea) {
38+ console.error('ファイル保存 失敗 キャンバス情報が取得できません data=' + data);
39+ return null;
40+ }
41+ // CSS情報取得
42+ let stylebg = document.getElementById('stylepalbg');
43+ let styletextcol = document.getElementById('stylepaltxtcol');
44+ let styleaction = document.getElementById('stylepalact');
45+ let cssbg = stylebg.sheet.cssText;
46+ let csstextcol = styletextcol.sheet.cssText;
47+ let cssaction = getAnimationCssFromElement(styleaction); // keyframe情報を取得するため、専用関数になっている
2848
49+ // 最終出力
50+ let savestr = '<style id="stylepalbg">' + cssbg + '</style><style id="stylepaltxtcol">' + csstextcol + '</style><style id="stylepalact">' + cssaction + '</style>' + editarea;
51+
52+ return savestr;
53+ }
54+ setFieldData(text) {
55+ this.DOMobject.innerHTML = text;
56+ }
57+ replaceFieldData(text) {
58+ if (null == text) {
59+ console.error('キャンバス情報の置き換えに失敗 置き換え情報がない');
60+ return false;
61+ }
62+
63+ let newstr = text.match(this.getEditAreaRegexp());
64+ if (null == newstr) {
65+ console.error('キャンバス情報の置き換えに失敗 置き換え情報データ不正 newstr=' + text);
66+ return false;
67+ }
68+
69+ let elestr = this.DOMobject.innerHTML;
70+ let result = elestr.replace(this.getEditAreaRegexp(), newstr[0]);
71+ if (null == result) {
72+ console.error('キャンバス情報の置き換えに失敗 置き換え要求に失敗 oldstr=' + elestr + '\nnewstr=' + newstr);
73+ return false;
74+ }
75+
76+ this.DOMobject.innerHTML = result;
77+ return true;
78+ }
79+
80+
81+
2982 // Mouse eventを拾ったときに通知してほしいときにセット
3083 // 上書きすると前に設定されていた callbackが消えます
3184 // callback: function mouseMove( evt ) move eventの evt.targetは目的のelementでない場合が多いため検索しない
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/framearea.js (nonexistent)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/framearea.js (revision 35)
@@ -0,0 +1,55 @@
1+class FrameArea {
2+ constructor() {
3+ this.DOMobject = null;
4+ this.objid = "FrameArea";
5+ }
6+ debuglog(str) {
7+ let funcname = null;
8+ let funcline = null;
9+ let optinfo = "";
10+/* let err = new Error();
11+ let strstack = err.stack;
12+
13+ strstack = strstack.split(/\r\n|\r|\n/); // 改行区切りで配列に取得
14+ if (4 < strstack.length) { // 0:"Error", 1:This func, 2:Caller func, 3...
15+ // 呼び出し元関数名取得
16+ if (-1 != strstack[2].indexOf("(")) {
17+ funcname = strstack[2].match(/^ *at +(.+) +\(/)[1];
18+ }
19+ else {
20+ funcname = "Global code";
21+ }
22+ // 呼び出し元の呼び出し元行番号取得
23+ funcline = strstack[3].match(/[^\/]*$/);
24+ optinfo = funcline + ' ' + funcname + ': ';
25+ }
26+ */
27+ debuglog("【FrameArea】" + optinfo + str);
28+ }
29+
30+ // ■ 初期化
31+ initialize(dom) {
32+ this.debuglog("initialize");
33+ if (null == dom) {
34+ console.error("【DisplayField】 initialize() DOMobject is null.");
35+ return false;
36+ }
37+ this.DOMobject = dom;
38+ }
39+
40+
41+ // 操作関数 -----------------------------------
42+
43+ clear() {
44+ this.debuglog('clear()');
45+ if (null != this.DOMobject) {
46+ window.displayField.DOMobject.removeChild(this.DOMobject);
47+ this.DOMobject.outerHTML = "";
48+ delete this.DOMobject;
49+ this.DOMobject = null;
50+ }
51+ }
52+
53+
54+
55+}
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
--- HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/palette.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/bin/x64/Debug/AppX/js/palette.js (revision 35)
@@ -118,8 +118,13 @@
118118
119119 // 読み込んだ文字列を 「animation定義」と「keyframe定義」に分割
120120 let keyframeStartIndex = cssdata.indexOf('@keyframe');
121- let strAnimation = cssdata.slice(0, keyframeStartIndex - 1);
121+ let strTmp = cssdata.slice(0, keyframeStartIndex - 1);
122+ let strAnimation = strTmp.match(/\{([\s\S]*)\}/)[1];
122123 let strKeyframe = cssdata.slice(keyframeStartIndex);
124+ if (null == strAnimation || null == strKeyframe) {
125+ console.error('パレットへの drop file読み込み失敗 \npalette=' + ele.dataset.objid + ', file=' + file.name);
126+ return false;
127+ }
123128
124129 // CSS定義の差し替え
125130 let defAnimNum = id * 2; // CSS定義が 'animation' と '@keyframe'のため
--- HtmlDrawApp/HTMLDrawApp/css/default.css (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/css/default.css (revision 35)
@@ -44,9 +44,17 @@
4444 /* キャンバス要素の定義 */
4545 #DispField{
4646 display:block;
47- width:400px; height:300px;
48- border:1px solid black;
49- margin: 10px;
47+ width:400px; height:300px;
48+ border: none;
49+ margin: 0; padding: 0;
50+ background-color: transparent;
51+ }
52+
53+ #FrameArea{
54+ display:block;
55+ width: 100%; height: 100%;
56+ border: 1px solid black;
57+ margin: 0; padding: 0;
5058 background-color: white;
5159 }
5260
@@ -61,6 +69,12 @@
6169 left:0; top:0;
6270 width: 100%; height: 100%;
6371 }
72+ div.DispObj {
73+ -webkit-user-select: text;
74+ -khtml-user-select: text;
75+ -moz-user-select: text;
76+ user-select: text;
77+ }
6478
6579
6680 /* パレットグループ要素の定義 */
--- HtmlDrawApp/HTMLDrawApp/index.html (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/index.html (revision 35)
@@ -10,9 +10,11 @@
1010 <body>
1111
1212 <div id="apparea" data-objid="apparea">
13- <!-- 編集領域 -->
14- <div id="DispField" data-objid="DisplayField" data-focus="true">
13+ <!-- Editting area from here --------------------- -->
14+ <div id="DispField" data-objid="DisplayField">
15+ <div id="FrameArea" data-objid="FrameArea"></div>
1516 </div>
17+ <!-- ------------------------------------ to here. -->
1618 <!-- 固定ボタン (選択要素の削除, 保存, …) -->
1719 <button type=button class="pal" data-objid="pal" data-palid="0" title="フォーカス中の要素を削除します">削除</button>
1820 <button type=button class="pal" data-objid="pal" data-palid="1" title="現在のパレット設定を保存します">設定保存</button>
@@ -199,6 +201,7 @@
199201 <script type="text/javascript" src="js/DispObj.js"></script>
200202 <script type="text/javascript" src="js/ObjIDMgr.js"></script>
201203 <script type="text/javascript" src="js/ThreadMessage.js"></script>
204+ <script type="text/javascript" src="js/framearea.js"></script>
202205 <script type="text/javascript" src="js/DisplayField.js"></script>
203206 <script type="text/javascript" src="js/apparea.js"></script>
204207 <script type="text/javascript" src="js/main.js"></script>
--- HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/js/DispObj.js (revision 35)
@@ -40,7 +40,7 @@
4040 this.DOMobject.outerHTML = "";
4141 delete this.DOMobject;
4242 this.DOMobject = null;
43- document.getElementById('DispField').removeChild(this.DOMbase);
43+ window.frameArea.DOMobject.removeChild(this.DOMbase);
4444 this.DOMbase.outerHTML = "";
4545 delete this.DOMbase;
4646 this.DOMbase = null;
@@ -192,7 +192,7 @@
192192 this.DOMbase.style.top = this.y.toString() + "px";
193193 this.DOMbase.style.width = this.width.toString() + "px";
194194 this.DOMbase.style.height = this.height.toString() + "px";
195- document.getElementById('DispField').appendChild(this.DOMbase);
195+ window.frameArea.DOMobject.appendChild(this.DOMbase);
196196
197197 this.debuglog("renderCreate() left=" + this.DOMbase.style.left
198198 + ", top=" + this.DOMbase.style.top
--- HtmlDrawApp/HTMLDrawApp/js/DisplayField.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/js/DisplayField.js (revision 35)
@@ -9,6 +9,7 @@
99 this.DOMobject = dom;
1010 this.mouseMoveFunc = null;
1111 this.mouseUpFunc = null;
12+ this.objid = "DisplayField";
1213 }
1314
1415 debuglog(str) {
@@ -48,7 +49,23 @@
4849 setFieldData(text) {
4950 this.DOMobject.innerHTML = text;
5051 }
52+ /*
53+ clear() {
54+ this.debuglog("clear()");
55+ if (null != this.DOMobject) {
56+ this.DOMobject.removeEventListener('dragstart', this.onDragStart.bind(this), false);
57+ this.DOMobject.removeEventListener('dragover', this.onDragover.bind(this), false);
58+ this.DOMobject.removeEventListener('drop', this.onDrop.bind(this), false);
5159
60+ document.getElementById('apparea').removeChild(this.DOMobject);
61+ this.DOMobject.outerHTML = "";
62+ delete this.DOMobject;
63+ this.DOMobject = null;
64+ }
65+ this.mouseMoveFunc = null;
66+ this.mouseUpFunc = null;
67+ }
68+ */
5269
5370
5471 // Event handler -------------------
--- HtmlDrawApp/HTMLDrawApp/js/apparea.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/js/apparea.js (revision 35)
@@ -7,6 +7,11 @@
77 this.mouseMoveFunc = null;
88 this.mouseUpFunc = null;
99 }
10+ // 保存ファイルから編集エリア内容 (DispFieldの divとそこに連なるelement) を
11+ // 取得するための正規表現object取得
12+ getEditAreaRegexp() {
13+ return /<!-- Editting area from here --------------------- -->([\s\S]*?)<!-- ------------------------------------ to here. -->/;
14+ }
1015 debuglog(str) {
1116 debuglog("【appArea】" + str);
1217 }
@@ -25,7 +30,55 @@
2530
2631
2732 // 操作関数 -----------------------------------
33+ getFieldData() {
34+ // 表示情報取得
35+ let data = this.DOMobject.innerHTML;
36+ let editarea = data.match(this.getEditAreaRegexp())[0];
37+ if (null == editarea) {
38+ console.error('ファイル保存 失敗 キャンバス情報が取得できません data=' + data);
39+ return null;
40+ }
41+ // CSS情報取得
42+ let stylebg = document.getElementById('stylepalbg');
43+ let styletextcol = document.getElementById('stylepaltxtcol');
44+ let styleaction = document.getElementById('stylepalact');
45+ let cssbg = stylebg.sheet.cssText;
46+ let csstextcol = styletextcol.sheet.cssText;
47+ let cssaction = getAnimationCssFromElement(styleaction); // keyframe情報を取得するため、専用関数になっている
2848
49+ // 最終出力
50+ let savestr = '<style id="stylepalbg">' + cssbg + '</style><style id="stylepaltxtcol">' + csstextcol + '</style><style id="stylepalact">' + cssaction + '</style>' + editarea;
51+
52+ return savestr;
53+ }
54+ setFieldData(text) {
55+ this.DOMobject.innerHTML = text;
56+ }
57+ replaceFieldData(text) {
58+ if (null == text) {
59+ console.error('キャンバス情報の置き換えに失敗 置き換え情報がない');
60+ return false;
61+ }
62+
63+ let newstr = text.match(this.getEditAreaRegexp());
64+ if (null == newstr) {
65+ console.error('キャンバス情報の置き換えに失敗 置き換え情報データ不正 newstr=' + text);
66+ return false;
67+ }
68+
69+ let elestr = this.DOMobject.innerHTML;
70+ let result = elestr.replace(this.getEditAreaRegexp(), newstr[0]);
71+ if (null == result) {
72+ console.error('キャンバス情報の置き換えに失敗 置き換え要求に失敗 oldstr=' + elestr + '\nnewstr=' + newstr);
73+ return false;
74+ }
75+
76+ this.DOMobject.innerHTML = result;
77+ return true;
78+ }
79+
80+
81+
2982 // Mouse eventを拾ったときに通知してほしいときにセット
3083 // 上書きすると前に設定されていた callbackが消えます
3184 // callback: function mouseMove( evt ) move eventの evt.targetは目的のelementでない場合が多いため検索しない
--- HtmlDrawApp/HTMLDrawApp/js/framearea.js (nonexistent)
+++ HtmlDrawApp/HTMLDrawApp/js/framearea.js (revision 35)
@@ -0,0 +1,55 @@
1+class FrameArea {
2+ constructor() {
3+ this.DOMobject = null;
4+ this.objid = "FrameArea";
5+ }
6+ debuglog(str) {
7+ let funcname = null;
8+ let funcline = null;
9+ let optinfo = "";
10+/* let err = new Error();
11+ let strstack = err.stack;
12+
13+ strstack = strstack.split(/\r\n|\r|\n/); // 改行区切りで配列に取得
14+ if (4 < strstack.length) { // 0:"Error", 1:This func, 2:Caller func, 3...
15+ // 呼び出し元関数名取得
16+ if (-1 != strstack[2].indexOf("(")) {
17+ funcname = strstack[2].match(/^ *at +(.+) +\(/)[1];
18+ }
19+ else {
20+ funcname = "Global code";
21+ }
22+ // 呼び出し元の呼び出し元行番号取得
23+ funcline = strstack[3].match(/[^\/]*$/);
24+ optinfo = funcline + ' ' + funcname + ': ';
25+ }
26+ */
27+ debuglog("【FrameArea】" + optinfo + str);
28+ }
29+
30+ // ■ 初期化
31+ initialize(dom) {
32+ this.debuglog("initialize");
33+ if (null == dom) {
34+ console.error("【DisplayField】 initialize() DOMobject is null.");
35+ return false;
36+ }
37+ this.DOMobject = dom;
38+ }
39+
40+
41+ // 操作関数 -----------------------------------
42+
43+ clear() {
44+ this.debuglog('clear()');
45+ if (null != this.DOMobject) {
46+ window.displayField.DOMobject.removeChild(this.DOMobject);
47+ this.DOMobject.outerHTML = "";
48+ delete this.DOMobject;
49+ this.DOMobject = null;
50+ }
51+ }
52+
53+
54+
55+}
--- HtmlDrawApp/HTMLDrawApp/js/main.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/js/main.js (revision 35)
@@ -34,6 +34,12 @@
3434 dom = document.getElementById("DispField");
3535 window.displayField = new CDisplayField(dom);
3636 window.displayField.initialize();
37+
38+ dom = document.getElementById("FrameArea");
39+ window.frameArea = new FrameArea();
40+ window.frameArea.initialize(dom);
41+
42+
3743 window.ObjIDMgr = new CObjIDMgr();
3844 // -------------
3945 // 選択 itemの focus状態表示用
@@ -231,17 +237,22 @@
231237 // 3. html部分を DisplayFieldに読み込み
232238 window.partsFocus.setClingingPartner(null); // Focus消去
233239 window.ObjIDMgr.clear(); // 表示中の要素を削除 (ObjIDMgr.deletebox()は隠すだけなので注意)
234- // canvas上の要素は div or imgのみ。どちらが先頭かは不確定
235- let data = str.match(/<(div|img) +class=[\s\S]*/);
240+ window.frameArea.clear();
241+ // canvas上の要素
242+ let data = str.match(/<div id=\"FrameArea\"[\s\S]*/);
236243 if (null == data) {
237- console.error('File読み込み失敗 parseDdText() html要素がマッチしない\nindexDiv=' + indexDiv + ', indexImg=' + indexImg + ', str=' +str);
244+ console.error('ファイル読みこみ 失敗 キャンバス情報が取得できません data=' + data);
238245 return;
239246 }
240247 // 表示データをそのまま DisplayFieldにセットする (見た目上は再現される)
241248 window.displayField.setFieldData(data[0]);
249+ // FrameArea取得
250+ let frameDom = document.getElementById("FrameArea");
251+ window.frameArea.initialize(frameDom);
242252
243253 // 4. DOM treeに合わせて DispObj instanceを作成
244254 window.ObjIDMgr.adjustEnvToDOM();
255+
245256 }
246257
247258
@@ -250,7 +261,6 @@
250261
251262
252263
253-
254264 // 固定ボタン押下 event handler ----------------
255265
256266 function onClickPalButton(evt) {
--- HtmlDrawApp/HTMLDrawApp/js/palette.js (revision 34)
+++ HtmlDrawApp/HTMLDrawApp/js/palette.js (revision 35)
@@ -118,8 +118,13 @@
118118
119119 // 読み込んだ文字列を 「animation定義」と「keyframe定義」に分割
120120 let keyframeStartIndex = cssdata.indexOf('@keyframe');
121- let strAnimation = cssdata.slice(0, keyframeStartIndex - 1);
121+ let strTmp = cssdata.slice(0, keyframeStartIndex - 1);
122+ let strAnimation = strTmp.match(/\{([\s\S]*)\}/)[1];
122123 let strKeyframe = cssdata.slice(keyframeStartIndex);
124+ if (null == strAnimation || null == strKeyframe) {
125+ console.error('パレットへの drop file読み込み失敗 \npalette=' + ele.dataset.objid + ', file=' + file.name);
126+ return false;
127+ }
123128
124129 // CSS定義の差し替え
125130 let defAnimNum = id * 2; // CSS定義が 'animation' と '@keyframe'のため
--- HtmlDrawApp/doc/ActSetting.txt (revision 34)
+++ HtmlDrawApp/doc/ActSetting.txt (revision 35)
@@ -1,4 +1,6 @@
1-animation: animeY1 1.5s ease-in 0.3s infinite alternate;
1+dummy {
2+ animation: animeY1 1.5s ease-in 0.3s infinite alternate;
3+}
24 @keyframes animeY1 {
35 0% {transform: translateY(-60px) translateX(-30px);}
46 10% {transform: translateY(20px) translateX(30px);}
--- HtmlDrawApp/doc/構成.txt (nonexistent)
+++ HtmlDrawApp/doc/構成.txt (revision 35)
@@ -0,0 +1,43 @@
1+Logに出力したい項目
2+ ・設定状態
3+ ・アプリ設定情報
4+ ・実行環境
5+ ・ブラウザ種別
6+ ・OS
7+ ・Hardware resource
8+ ・実行中のPC状況
9+ ・CPU resource
10+ ・memory resource
11+ ・Storage
12+
13+
14+ ・User Input
15+ ・マウス押下
16+ ・要素選択
17+ ・関数呼び出し順
18+ ・コマンド履歴
19+
20+
21+
22+
23+
24+ファイル読み込みについて
25+
26+ 【DOM構成】 Function Color Size overflow position z-index
27+ appArea Input event handling transparent Device hidden relative -
28+ DisplayField Drop event handling transparent 10x10 visible relative 1
29+ FrameArea 背景画像 user setting user setting hidden absolute 100
30+ DispBase 配置要素(操作用) transparent user setting visible absolute 200
31+ DispObj 配置要素(表示用) user setting default visible absolute 300
32+ DispBase transparent user setting visible absolute 200
33+ DispObj user setting default visible absolute 300
34+ focusbar フォーカス要素 default default visible absolute 500
35+ PalGroup パレット要素 grouping default default visible absolute 1000
36+ palbg 背景画像設定 drop file default visible absolute 1100
37+ paltxtcol テキスト色設定 drop file default visible absolute 1100
38+ palaction 動き設定 drop file default visible absolute 1100
39+
40+
41+
42+
43+