From 8100bf72b1a5c145fc5397e022e7813583a5f439 Mon Sep 17 00:00:00 2001 From: tocque Date: Fri, 15 May 2020 14:42:26 +0800 Subject: [PATCH 1/3] split resources folder --- _server/editor.js | 2 +- libs/core.js | 10 +++---- libs/loader.js | 30 +++++++++----------- project/{images => autotiles}/autotile.png | Bin project/{images => autotiles}/autotile1.png | Bin project/{images => autotiles}/autotile2.png | Bin project/{images => autotiles}/autotile3.png | Bin project/{sounds => bgms}/bgm.mp3 | Bin project/data.js | 4 +-- project/{images => materials}/airwall.png | Bin project/{images => materials}/animates.png | Bin project/{images => materials}/enemy48.png | Bin project/{images => materials}/enemys.png | Bin project/{images => materials}/fog.png | Bin project/{images => materials}/ground.png | Bin project/{images => materials}/hero.png | Bin project/{images => materials}/icons.png | Bin project/{images => materials}/items.png | Bin project/{images => materials}/keyboard.png | Bin project/{images => materials}/npc48.png | Bin project/{images => materials}/npcs.png | Bin project/{images => materials}/terrains.png | Bin project/{images => tilesets}/magictower.png | Bin styles.css | 4 +-- 常用工具/JS代码压缩工具.exe | Bin 13824 -> 12800 bytes 25 files changed, 24 insertions(+), 26 deletions(-) rename project/{images => autotiles}/autotile.png (100%) rename project/{images => autotiles}/autotile1.png (100%) rename project/{images => autotiles}/autotile2.png (100%) rename project/{images => autotiles}/autotile3.png (100%) rename project/{sounds => bgms}/bgm.mp3 (100%) rename project/{images => materials}/airwall.png (100%) rename project/{images => materials}/animates.png (100%) rename project/{images => materials}/enemy48.png (100%) rename project/{images => materials}/enemys.png (100%) rename project/{images => materials}/fog.png (100%) rename project/{images => materials}/ground.png (100%) rename project/{images => materials}/hero.png (100%) rename project/{images => materials}/icons.png (100%) rename project/{images => materials}/items.png (100%) rename project/{images => materials}/keyboard.png (100%) rename project/{images => materials}/npc48.png (100%) rename project/{images => materials}/npcs.png (100%) rename project/{images => materials}/terrains.png (100%) rename project/{images => tilesets}/magictower.png (100%) diff --git a/_server/editor.js b/_server/editor.js index ab9abb3b..c33b633f 100644 --- a/_server/editor.js +++ b/_server/editor.js @@ -149,7 +149,7 @@ editor.prototype.init = function (callback) { var useCompress = main.useCompress; main.useCompress = false; editor.airwallImg = new Image(); - editor.airwallImg.src = './project/images/airwall.png'; + editor.airwallImg.src = './project/materials/airwall.png'; main.init('editor', function () { editor.config = new editor_config(); diff --git a/libs/core.js b/libs/core.js index 09c5d5f4..6b5d45ec 100644 --- a/libs/core.js +++ b/libs/core.js @@ -190,9 +190,9 @@ function core() { }, "globalAttribute": { 'equipName': main.equipName || [], - "statusLeftBackground": main.statusLeftBackground || "url(project/images/ground.png) repeat", - "statusTopBackground": main.statusTopBackground || "url(project/images/ground.png) repeat", - "toolsBackground": main.toolsBackground || "url(project/images/ground.png) repeat", + "statusLeftBackground": main.statusLeftBackground || "url(project/materials/ground.png) repeat", + "statusTopBackground": main.statusTopBackground || "url(project/materials/ground.png) repeat", + "toolsBackground": main.toolsBackground || "url(project/images/materials.png) repeat", "borderColor": main.borderColor || "white", "statusBarColor": main.statusBarColor || "white", "hardLabelColor": main.hardLabelColor || "red", @@ -374,8 +374,8 @@ core.prototype._init_others = function () { core.material.groundCanvas.canvas.width = core.material.groundCanvas.canvas.height = 32; core.material.groundPattern = core.material.groundCanvas.createPattern(core.material.groundCanvas.canvas, 'repeat'); core.bigmap.tempCanvas = document.createElement('canvas').getContext('2d'); - core.loadImage('fog', function (name, img) { core.animateFrame.weather.fog = img; }); - core.loadImage('keyboard', function (name, img) {core.material.images.keyboard = img; }); + core.loadImage("materials", 'fog', function (name, img) { core.animateFrame.weather.fog = img; }); + core.loadImage("materials", 'keyboard', function (name, img) {core.material.images.keyboard = img; }); // 记录存档编号 core.saves.saveIndex = core.getLocalStorage('saveIndex', 1); core.control.getSaveIndexes(function (indexes) { core.saves.ids = indexes; }); diff --git a/libs/loader.js b/libs/loader.js index 88b92b02..8f4ea8f6 100644 --- a/libs/loader.js +++ b/libs/loader.js @@ -39,7 +39,7 @@ loader.prototype._load = function (callback) { } loader.prototype._loadIcons = function () { - this.loadImage("icons.png", function (id, image) { + this.loadImage("materials", "icons.png", function (id, image) { var images = core.splitImage(image); for (var key in core.statusBar.icons) { if (typeof core.statusBar.icons[key] == 'number') { @@ -54,9 +54,9 @@ loader.prototype._loadIcons = function () { loader.prototype._loadMaterialImages = function (callback) { this._setStartLoadTipText("正在加载资源文件..."); if (main.useCompress) { - this.loadImagesFromZip('project/images/materials.h5data', core.materials, core.material.images, callback); + this.loadImagesFromZip('project/materials/materials.h5data', core.materials, core.material.images, callback); } else { - this.loadImages(core.materials, core.material.images, callback); + this.loadImages("materials", core.materials, core.material.images, callback); } } @@ -64,8 +64,6 @@ loader.prototype._loadExtraImages = function (callback) { core.material.images.images = {}; var images = core.clone(core.images); - if (images.indexOf("hero.png") < 0) - images.push("hero.png"); this._setStartLoadTipText("正在加载图片文件..."); if (main.useCompress) { @@ -79,14 +77,14 @@ loader.prototype._loadExtraImages = function (callback) { this.loadImagesFromZip('project/images/images.h5data', images, core.material.images.images, callback); gifs.forEach(function (gif) { - this.loadImage(gif, function (id, image) { + this.loadImage("images", gif, function (id, image) { if (image != null) { core.material.images.images[gif] = image; } }); }, this); } else { - this.loadImages(images, core.material.images.images, callback); + this.loadImages("images", images, core.material.images.images, callback); } } @@ -107,9 +105,9 @@ loader.prototype._loadAutotiles = function (callback) { } this._setStartLoadTipText("正在加载自动元件..."); if (main.useCompress) { - this.loadImagesFromZip('project/images/autotiles.h5data', keys, autotiles, _callback); + this.loadImagesFromZip('project/autotiles/autotiles.h5data', keys, autotiles, _callback); } else { - this.loadImages(keys, autotiles, _callback); + this.loadImages("autotiles", keys, autotiles, _callback); } } @@ -131,20 +129,20 @@ loader.prototype._loadTilesets = function (callback) { } this._setStartLoadTipText("正在加载额外素材..."); if (main.useCompress) { - this.loadImagesFromZip('project/images/tilesets.h5data', core.tilesets, core.material.images.tilesets, _callback); + this.loadImagesFromZip('project/tilesets/tilesets.h5data', core.tilesets, core.material.images.tilesets, _callback); } else { - this.loadImages(core.tilesets, core.material.images.tilesets, _callback); + this.loadImages("tilesets", core.tilesets, core.material.images.tilesets, _callback); } } -loader.prototype.loadImages = function (names, toSave, callback) { +loader.prototype.loadImages = function (dir, names, toSave, callback) { if (!names || names.length == 0) { if (callback) callback(); return; } var items = 0; for (var i = 0; i < names.length; i++) { - this.loadImage(names[i], function (id, image) { + this.loadImage(dir, names[i], function (id, image) { core.loader._setStartLoadTipText('正在加载图片 ' + id + "..."); if (toSave[id] !== undefined) { if (image != null) @@ -192,7 +190,7 @@ loader.prototype.loadImagesFromZip = function (url, names, toSave, callback) { }); } -loader.prototype.loadImage = function (imgName, callback) { +loader.prototype.loadImage = function (dir, imgName, callback) { try { var name = imgName; if (name.indexOf(".") < 0) @@ -204,7 +202,7 @@ loader.prototype.loadImage = function (imgName, callback) { image.onerror = function () { callback(imgName, null); } - image.src = 'project/images/' + name + "?v=" + main.version; + image.src = 'project/' + dir + '/' + name + "?v=" + main.version; if (name.endsWith('.gif')) callback(imgName, null); } @@ -313,7 +311,7 @@ loader.prototype.loadOneMusic = function (name) { var music = new Audio(); music.preload = 'none'; if (main.bgmRemote) music.src = main.bgmRemoteRoot + core.firstData.name + '/' + name; - else music.src = 'project/sounds/' + name; + else music.src = 'project/bgms/' + name; music.loop = 'loop'; core.material.bgms[name] = music; } diff --git a/project/images/autotile.png b/project/autotiles/autotile.png similarity index 100% rename from project/images/autotile.png rename to project/autotiles/autotile.png diff --git a/project/images/autotile1.png b/project/autotiles/autotile1.png similarity index 100% rename from project/images/autotile1.png rename to project/autotiles/autotile1.png diff --git a/project/images/autotile2.png b/project/autotiles/autotile2.png similarity index 100% rename from project/images/autotile2.png rename to project/autotiles/autotile2.png diff --git a/project/images/autotile3.png b/project/autotiles/autotile3.png similarity index 100% rename from project/images/autotile3.png rename to project/autotiles/autotile3.png diff --git a/project/sounds/bgm.mp3 b/project/bgms/bgm.mp3 similarity index 100% rename from project/sounds/bgm.mp3 rename to project/bgms/bgm.mp3 diff --git a/project/data.js b/project/data.js index 49445eab..2c6ff1de 100644 --- a/project/data.js +++ b/project/data.js @@ -65,8 +65,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = ], "startBgm": null, "statusLeftBackground": null, - "statusTopBackground": "url(project/images/ground.png) repeat", - "toolsBackground": "url(project/images/ground.png) repeat", + "statusTopBackground": "url(project/materials/ground.png) repeat", + "toolsBackground": "url(project/materials/ground.png) repeat", "borderColor": "#CCCCCC", "statusBarColor": "white", "hardLabelColor": "red", diff --git a/project/images/airwall.png b/project/materials/airwall.png similarity index 100% rename from project/images/airwall.png rename to project/materials/airwall.png diff --git a/project/images/animates.png b/project/materials/animates.png similarity index 100% rename from project/images/animates.png rename to project/materials/animates.png diff --git a/project/images/enemy48.png b/project/materials/enemy48.png similarity index 100% rename from project/images/enemy48.png rename to project/materials/enemy48.png diff --git a/project/images/enemys.png b/project/materials/enemys.png similarity index 100% rename from project/images/enemys.png rename to project/materials/enemys.png diff --git a/project/images/fog.png b/project/materials/fog.png similarity index 100% rename from project/images/fog.png rename to project/materials/fog.png diff --git a/project/images/ground.png b/project/materials/ground.png similarity index 100% rename from project/images/ground.png rename to project/materials/ground.png diff --git a/project/images/hero.png b/project/materials/hero.png similarity index 100% rename from project/images/hero.png rename to project/materials/hero.png diff --git a/project/images/icons.png b/project/materials/icons.png similarity index 100% rename from project/images/icons.png rename to project/materials/icons.png diff --git a/project/images/items.png b/project/materials/items.png similarity index 100% rename from project/images/items.png rename to project/materials/items.png diff --git a/project/images/keyboard.png b/project/materials/keyboard.png similarity index 100% rename from project/images/keyboard.png rename to project/materials/keyboard.png diff --git a/project/images/npc48.png b/project/materials/npc48.png similarity index 100% rename from project/images/npc48.png rename to project/materials/npc48.png diff --git a/project/images/npcs.png b/project/materials/npcs.png similarity index 100% rename from project/images/npcs.png rename to project/materials/npcs.png diff --git a/project/images/terrains.png b/project/materials/terrains.png similarity index 100% rename from project/images/terrains.png rename to project/materials/terrains.png diff --git a/project/images/magictower.png b/project/tilesets/magictower.png similarity index 100% rename from project/images/magictower.png rename to project/tilesets/magictower.png diff --git a/styles.css b/styles.css index dec14381..d981dfdf 100644 --- a/styles.css +++ b/styles.css @@ -198,7 +198,7 @@ box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; - background: url(project/images/ground.png) repeat; + background: url(project/materials/ground.png) repeat; z-index: 185; display: none; top: 0; @@ -232,7 +232,7 @@ } #toolBar { position: absolute; - background: url(project/images/ground.png) repeat; + background: url(project/materials/ground.png) repeat; z-index: 210; box-sizing: border-box; -moz-box-sizing: border-box; diff --git a/常用工具/JS代码压缩工具.exe b/常用工具/JS代码压缩工具.exe index c5f5e89cedee89327153f6eb017e668c3960b0f8..4300e128032cdd9d645490d67ddb2e9daf94e954 100644 GIT binary patch delta 4318 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 From ec60742c5d011d2baaf0199e8ce384b257a055e6 Mon Sep 17 00:00:00 2001 From: tocque Date: Fri, 15 May 2020 16:53:24 +0800 Subject: [PATCH 2/3] fix heroIcon & add fold for table gap --- _server/editor_table.js | 62 ++++++++++++++++++++++++- _server/table/data.comment.js | 14 +++++- libs/events.js | 7 ++- libs/maps.js | 2 +- libs/ui.js | 4 +- main.js | 2 +- project/data.js | 4 +- project/functions.js | 4 +- project/{materials => images}/hero.png | Bin 9 files changed, 86 insertions(+), 13 deletions(-) rename project/{materials => images}/hero.png (100%) diff --git a/_server/editor_table.js b/_server/editor_table.js index c9d0ce31..98e93689 100644 --- a/_server/editor_table.js +++ b/_server/editor_table.js @@ -57,11 +57,21 @@ editor_table_wrapper = function (editor) { } editor_table.prototype.gap = function (field) { - return /* html */`--------${field}----\n` + var tokenlist = field.slice(2, -2).split("']['"); + var rule = tokenlist.join("-"); + tokenlist.pop(); + var self = tokenlist.join("-"); + var status = tokenPool.check(rule); + return /* html */` + ---- + ---- + ${field} + + \n` } editor_table.prototype.tr = function (guid, field, shortField, commentHTMLescape, cobjstr, shortComment, tdstr, type) { - return /* html */` + return /* html */` ${shortField} ${shortComment || commentHTMLescape}
${tdstr}
@@ -349,6 +359,54 @@ editor_table_wrapper = function (editor) { } } + tokenPool = new class { + + constructor() { + this.pool = new Set(); + this.style = document.createElement("style"); + document.body.appendChild(this.style); + } + + add(token) { + this.pool.add(token); + this.render(); + } + + remove(token) { + this.pool.delete(token); + this.render(); + } + + render() { + var content = ""; + this.pool.forEach((k) => { + content += /* CSS */`[data-field|=${k}]{ display: none }`; + }) + this.style.innerHTML = content; + } + + check(token) { + return this.pool.has(token); + } + } + + /** + * 当"折叠"被按下时 + */ + editor_table.prototype.onFoldBtnClick = function (button) { + var tr = button.parentNode.parentNode; + if (button.dataset.fold == "true") { + tokenPool.remove(tr.dataset.gap); + button.dataset.fold = "false"; + button.innerText = "折叠"; + } else { + var style = document.createElement("style"); + tokenPool.add(tr.dataset.gap); + button.dataset.fold = "true"; + button.innerText = "展开"; + } + } + /** * 当"显示完整注释"被按下时 */ diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js index d92b6349..394abeb8 100644 --- a/_server/table/data.comment.js +++ b/_server/table/data.comment.js @@ -134,8 +134,10 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { }, "startBgm": { "_leaf": true, - "_type": "textarea", - "_string": true, + "_type": "select", + "_select": { + "values": [null].concat(Object.keys(editor.core.material.bgms)) + }, "_docs": "标题音乐", "_data": "在标题界面应该播放的bgm内容" }, @@ -242,6 +244,14 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "hero": { "_type": "object", "_data": { + "image": { + "_leaf": true, + "_type": "select", + "_select": { + "values": [null].concat(Object.keys(editor.core.material.images)) + }, + "_data": "勇士行走图" + }, "name": { "_leaf": true, "_type": "textarea", diff --git a/libs/events.js b/libs/events.js index ea1a1316..7d0e8235 100644 --- a/libs/events.js +++ b/libs/events.js @@ -2851,8 +2851,11 @@ events.prototype._jumpHero_finished = function (animate, ex, ey, callback) { events.prototype.setHeroIcon = function (name, noDraw) { name = core.getMappedName(name); var img = core.material.images.images[name]; - if (!img) return; - core.setFlag("heroIcon", name); + if (!img) { + console.error("找不到图片: "+img); + return; + } + core.status.hero.image = name; core.material.images.hero = img; core.material.icons.hero.width = img.width / 4; core.material.icons.hero.height = img.height / 4; diff --git a/libs/maps.js b/libs/maps.js index 72debb41..ae76cecb 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -1238,7 +1238,7 @@ maps.prototype._drawThumbnail_realDrawTempCanvas = function (floorId, blocks, op this.drawEvents(floorId, blocks, tempCanvas); // 缩略图:勇士 if (options.heroLoc) { - options.heroIcon = options.heroIcon || core.getFlag("heroIcon", "hero.png"); + options.heroIcon = options.heroIcon || core.status.hero.image; options.heroIcon = core.getMappedName(options.heroIcon); var icon = core.material.icons.hero[options.heroLoc.direction]; var height = core.material.images.images[options.heroIcon].height / 4; diff --git a/libs/ui.js b/libs/ui.js index 8050ec13..94a0a1e1 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -2057,7 +2057,7 @@ ui.prototype.drawCenterFly = function () { var fillstyle = 'rgba(255,0,0,0.5)'; if (core.canUseItem('centerFly')) fillstyle = 'rgba(0,255,0,0.5)'; var toX = core.bigmap.width - 1 - core.getHeroLoc('x'), toY = core.bigmap.height - 1 - core.getHeroLoc('y'); - core.drawThumbnail(null, null, {heroLoc: core.status.hero.loc, heroIcon: core.getFlag('heroIcon', "hero.png")}, + core.drawThumbnail(null, null, {heroLoc: core.status.hero.loc, heroIcon: core.status.hero.image}, {ctx: 'ui', centerX: toX, centerY: toY}); var offsetX = core.clamp(toX - core.__HALF_SIZE__, 0, core.bigmap.width - core.__SIZE__), offsetY = core.clamp(toY - core.__HALF_SIZE__, 0, core.bigmap.height - core.__SIZE__); @@ -2542,7 +2542,7 @@ ui.prototype._drawSLPanel_drawRecord = function(title, data, x, y, size, cho, hi core.strokeRect('ui', x-size/2, y+15, size, size, cho?strokeColor:'#FFFFFF', cho?6:2); if (data && data.floorId) { core.drawThumbnail(data.floorId, core.maps.loadMap(data.maps, data.floorId).blocks, { - heroLoc: data.hero.loc, heroIcon: data.hero.flags.heroIcon, flags: data.hero.flags + heroLoc: data.hero.loc, heroIcon: data.hero.image, flags: data.hero.flags }, { ctx: 'ui', x: x-size/2, y: y+15, size: size, centerX: data.hero.loc.x, centerY: data.hero.loc.y }); diff --git a/main.js b/main.js index e6206b82..89864d06 100644 --- a/main.js +++ b/main.js @@ -85,7 +85,7 @@ function main() { 'data', 'enemys', 'icons', 'maps', 'items', 'functions', 'events', 'plugins' ]; this.materials = [ - 'animates', 'enemys', 'hero', 'items', 'npcs', 'terrains', 'enemy48', 'npc48' + 'animates', 'enemys', 'items', 'npcs', 'terrains', 'enemy48', 'npc48' ]; this.statusBar = { diff --git a/project/data.js b/project/data.js index 2c6ff1de..3eb22a7b 100644 --- a/project/data.js +++ b/project/data.js @@ -10,7 +10,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = ], "images": [ "bg.jpg", - "winskin.png" + "winskin.png", + "hero.png" ], "tilesets": [ "magictower.png" @@ -81,6 +82,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "version": "Ver 2.6.6", "floorId": "sample0", "hero": { + "image": "hero.png", "name": "阳光", "lv": 1, "hpmax": 9999, diff --git a/project/functions.js b/project/functions.js index cf38a8c7..42316aff 100644 --- a/project/functions.js +++ b/project/functions.js @@ -16,7 +16,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 初始化人物,图标,统计信息 core.status.hero = core.clone(hero); window.flags = core.status.hero.flags; - core.events.setHeroIcon(core.getFlag('heroIcon', 'hero.png'), true); + core.events.setHeroIcon(core.status.hero.image, true); core.control._initStatistics(core.animateFrame.totalTime); core.status.hero.statistics.totalTime = core.animateFrame.totalTime = Math.max(core.status.hero.statistics.totalTime, core.animateFrame.totalTime); @@ -945,7 +945,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 重置音量 core.events.setVolume(core.getFlag("__volume__", 1), 0); // 加载勇士图标 - var icon = core.getFlag("heroIcon", "hero.png"); + var icon = core.status.hero.image; icon = core.getMappedName(icon); if (core.material.images.images[icon]) { core.material.images.hero = core.material.images.images[icon]; diff --git a/project/materials/hero.png b/project/images/hero.png similarity index 100% rename from project/materials/hero.png rename to project/images/hero.png From 775a12a69c41c8132511cbd9ab4fa0acb718d6c8 Mon Sep 17 00:00:00 2001 From: tocque Date: Fri, 15 May 2020 22:32:12 +0800 Subject: [PATCH 3/3] back to es5 --- _server/editor_table.js | 46 +++++++++++++---------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) diff --git a/_server/editor_table.js b/_server/editor_table.js index 98e93689..1f125c3a 100644 --- a/_server/editor_table.js +++ b/_server/editor_table.js @@ -61,7 +61,7 @@ editor_table_wrapper = function (editor) { var rule = tokenlist.join("-"); tokenlist.pop(); var self = tokenlist.join("-"); - var status = tokenPool.check(rule); + var status = !!tokenPool[rule]; return /* html */` ---- ---- @@ -359,35 +359,16 @@ editor_table_wrapper = function (editor) { } } - tokenPool = new class { + var tokenPool = {}; + var tokenstyle = document.createElement("style"); + document.body.appendChild(tokenstyle); - constructor() { - this.pool = new Set(); - this.style = document.createElement("style"); - document.body.appendChild(this.style); - } - - add(token) { - this.pool.add(token); - this.render(); - } - - remove(token) { - this.pool.delete(token); - this.render(); - } - - render() { - var content = ""; - this.pool.forEach((k) => { - content += /* CSS */`[data-field|=${k}]{ display: none }`; - }) - this.style.innerHTML = content; - } - - check(token) { - return this.pool.has(token); - } + tokenPoolRender = function() { + var content = ""; + Object.keys(tokenPool).forEach(function(k) { + content += /* CSS */`[data-field|=${k}]{ display: none }`; + }) + tokenstyle.innerHTML = content; } /** @@ -396,12 +377,13 @@ editor_table_wrapper = function (editor) { editor_table.prototype.onFoldBtnClick = function (button) { var tr = button.parentNode.parentNode; if (button.dataset.fold == "true") { - tokenPool.remove(tr.dataset.gap); + delete tokenPool[tr.dataset.gap]; + tokenPoolRender(); button.dataset.fold = "false"; button.innerText = "折叠"; } else { - var style = document.createElement("style"); - tokenPool.add(tr.dataset.gap); + tokenPool[tr.dataset.gap] = true; + tokenPoolRender(); button.dataset.fold = "true"; button.innerText = "展开"; }