diff --git a/categorys/array.js b/categorys/array.js index 46885d0..8999e52 100644 --- a/categorys/array.js +++ b/categorys/array.js @@ -13,6 +13,9 @@ const { } = require('../myjs/menus.js'); +//=========================================================== +//2.0.0 + function get_value_for_sort( thisjson, keymode, keyslist ){ if( typeof keyslist === 'number' ){ return thisjson[ keyslist ]; @@ -57,6 +60,8 @@ function get_value_for_sort( thisjson, keymode, keyslist ){ return thisjson } +//=========================================================== + /** @param {string} category_id */ module.exports = ( category_id )=>{ api.addBlocks([ @@ -164,7 +169,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.lastIndexOf`, messageId: `${category_id}.lastIndexOf`, categoryId: category_id, @@ -186,10 +191,11 @@ module.exports = ( category_id )=>{ api.addBlocks([ v1 = JSON.parse( v1 ); let v2 = args.v2; - if( typeof v2 !== 'object' ) + if( typeof v2 !== 'object' ){ try{ v2 = JSON.parse( v2 ); }catch{} + } return v1.lastIndexOf(v2); @@ -538,7 +544,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.concat`, messageId: `${category_id}.concat`, categoryId: category_id, @@ -566,10 +572,8 @@ module.exports = ( category_id )=>{ api.addBlocks([ let v2 = args.v2; if( typeof v2 !== 'object' ){ - if( typeof v2 === 'string' ) - v2 = `[${v2}]`; try{ - v2 = JSON.parse( v2 ); + v2 = JSON.parse(`[${v2}]`); }catch{} } diff --git a/categorys/debug.js b/categorys/debug.js index c98310f..fe8dd01 100644 --- a/categorys/debug.js +++ b/categorys/debug.js @@ -1,13 +1,20 @@ const { type, api } = require('clipcc-extension'); + /**@type {any}*/ const vm = api.getVmInstance(); const { - err_msg + err_msg, + my_log_block_error, + returnType, + get_sprite_target } = require('../myjs/tools'); const { - make_menus + make_menus, + myTypeMenu, + sprite_type_menu, + sprites_name_menu } = require('../myjs/menus'); /**@param {string} category_id*/ @@ -20,7 +27,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ function: (args,util)=> err_msg[0] }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.console`, messageId: `${category_id}.console`, categoryId: category_id, @@ -58,10 +65,11 @@ module.exports = ( category_id )=>{ api.addBlocks([ if( typeof v !== 'object' ){ try{ v = JSON.parse(`[${v}]`); + console[ args.type ]( ...v ); + return; }catch{} } - - console[ args.type ]( ...v ); + console[ args.type ]( v ); } }, //=========================================================== @@ -72,5 +80,64 @@ module.exports = ( category_id )=>{ api.addBlocks([ type: type.BlockType.REPORTER, function: (args,util)=> vm.toJSON() }, +//=========================================================== + {//2.0.1 + opcode: `${category_id}.temp_var`, + messageId: `${category_id}.temp_var`, + categoryId: category_id, + type: type.BlockType.REPORTER, + param: { + return_type: { + type: type.ParameterType.STRING, + default: 'ScratchType', + menu: myTypeMenu + }, + }, + function: (args,util)=>{ + try{ + return returnType( + vm.bddjr_toolbox_v2_temp_var , + args.return_type + ); + }catch(e){ + return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) + } + } + }, +//=========================================================== + {//2.0.1 + opcode: `${category_id}.sprite_temp_var`, + messageId: `${category_id}.sprite_temp_var`, + categoryId: category_id, + type: type.BlockType.REPORTER, + param: { + sprite_type: { + type: type.ParameterType.STRING, + default: 'thisClone', + menu: sprite_type_menu + }, + sprite_name: { + type: type.ParameterType.STRING, + default: '', + // @ts-ignore + menu: sprites_name_menu + }, + return_type: { + type: type.ParameterType.STRING, + default: 'ScratchType', + menu: myTypeMenu + }, + }, + function: (args,util)=>{ + try{ + return returnType( + get_sprite_target( util, args.sprite_type, args.sprite_name ).bddjr_toolbox_v2_temp_var , + args.return_type + ); + }catch(e){ + return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) + } + } + }, ]);} diff --git a/categorys/help.js b/categorys/help.js index c8490bd..4aeb00f 100644 --- a/categorys/help.js +++ b/categorys/help.js @@ -1,17 +1,41 @@ const { type, api } = require('clipcc-extension'); +//=========================================================== +//2.0.1 + +/** + * @param {String} name + * @param {String} link + */ +function jumpto(name, link){ + if(window.confirm(`你确定要跳转到${name}吗?\n${link}`)){ //弹窗确认 + window.open(link); + } +} + +//=========================================================== + /**@param {string} category_id*/ module.exports = ( category_id )=>{ api.addBlocks([ - // 创建一个不能被程序触发的积木,点击它就会直接跳转到github仓库地址。 - {//2.0.0 + // 创建不能被程序触发的积木,鼠标点击才能触发。 + {//2.0.1 opcode: `${category_id}.jumptogithub`, messageId: `${category_id}.jumptogithub`, categoryId: category_id, type: undefined, - function: (args,util)=>{ - if(window.confirm("你确定要跳转到github吗?")){ //弹窗确认 - window.open("https://github.com/bddjr/clipcc-extension-bddjr_toolbox_v2"); - } - }, + function: ()=> jumpto( + 'Github', + "https://github.com/bddjr/clipcc-extension-bddjr_toolbox_v2/" + ), + }, + {//2.0.1 + opcode: `${category_id}.doc`, + messageId: `${category_id}.doc`, + categoryId: category_id, + type: undefined, + function: ()=> jumpto( + '文档', + "https://btbv2.ccext.bddjr.cn" + ), }, ]);} diff --git a/categorys/json.js b/categorys/json.js index e03f8dc..436c4be 100644 --- a/categorys/json.js +++ b/categorys/json.js @@ -113,7 +113,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, }, //====================================================================================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.set_value`, messageId: `${category_id}.set_value`, categoryId: category_id, @@ -170,6 +170,10 @@ module.exports = ( category_id )=>{ api.addBlocks([ setKey = keyslist; else if( args.keymode === 'Array' ){ for( let i=0 ; i< keyslist.length-1 ; i++ ){ + if( (+i)<0 && Array.isArray(thisjson) ){ + // 兼容数组负数下标取值 + i = thisjson.length + (+i); + } thisjson = thisjson[ keyslist[i] ]; } setKey = keyslist.slice(-1); @@ -177,17 +181,33 @@ module.exports = ( category_id )=>{ api.addBlocks([ if( Array.isArray( keyslist ) ){ for( let i of keyslist ){ if( Array.isArray( i ) ){ + if( Array.isArray(thisjson) && (+i[0])<0 ){ + // 兼容数组负数下标取值 + i[0] = thisjson.length + (+i[0]); + } thisjson = thisjson[ i[0] ]; if( i[1] ==='?.' && !thisjson ) break; }else{ + if( Array.isArray(thisjson) && (+i)<0 ){ + // 兼容数组负数下标取值 + i = thisjson.length + (+i); + } setKey = i ; } } }else{ // typeof keyslist === 'string' + if( Array.isArray(thisjson) && (+keyslist)<0 ){ + // 兼容数组负数下标取值 + keyslist = thisjson.length + (+keyslist); + } setKey = keyslist; } } + if( Array.isArray(thisjson) && (+setKey)<0 ){ + // 兼容数组负数下标取值 + setKey = thisjson.length + (+setKey); + } switch( args.operator ){ case '=': thisjson[setKey] = setValue; @@ -293,7 +313,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, }, //====================================================================================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.deleteProperty`, messageId: `${category_id}.deleteProperty`, categoryId: category_id, @@ -335,6 +355,10 @@ module.exports = ( category_id )=>{ api.addBlocks([ setKey = keyslist; else if( args.keymode === 'Array' ){ for( let i=0 ; i< keyslist.length-1 ; i++ ){ + if( (+i)<0 && Array.isArray(thisjson) ){ + // 兼容数组负数下标取值 + i = thisjson.length + (+i); + } thisjson = thisjson[ keyslist[i] ]; } setKey = keyslist.slice(-1); @@ -342,17 +366,33 @@ module.exports = ( category_id )=>{ api.addBlocks([ if( Array.isArray( keyslist ) ){ for( let i of keyslist ){ if( Array.isArray( i ) ){ + if( Array.isArray(thisjson) && (+i[0])<0 ){ + // 兼容数组负数下标取值 + i[0] = thisjson.length + (+i[0]); + } thisjson = thisjson[ i[0] ]; if( i[1] ==='?.' && !thisjson ) break; }else{ + if( Array.isArray(thisjson) && (+i)<0 ){ + // 兼容数组负数下标取值 + i = thisjson.length + (+i); + } setKey = i ; } } }else{ // typeof keyslist === 'string' + if( Array.isArray(thisjson) && (+keyslist)<0 ){ + // 兼容数组负数下标取值 + keyslist = thisjson.length + (+keyslist); + } setKey = keyslist; } } + if( Array.isArray(thisjson) && (+setKey)<0 ){ + // 兼容数组负数下标取值 + setKey = thisjson.length + (+setKey); + } Reflect.deleteProperty( thisjson, setKey ); return returnType( globaljson, args.return_type ); diff --git a/categorys/string_and_type.js b/categorys/string_and_type.js index ec2c915..b5a541c 100644 --- a/categorys/string_and_type.js +++ b/categorys/string_and_type.js @@ -597,7 +597,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ function: (args,util)=> String.fromCharCode( args.n1 ) }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.repeat`, messageId: `${category_id}.repeat`, categoryId: category_id, @@ -605,14 +605,38 @@ module.exports = ( category_id )=>{ api.addBlocks([ param: { v: { type: type.ParameterType.STRING, - default: '哦' + default: '我爱你!' }, n1: { type: type.ParameterType.NUMBER, - default: '2' + default: '520' } }, function: (args,util)=> String( args.v ).repeat( args.n1 ) }, +//=========================================================== + {//2.0.1 + opcode: `${category_id}.instanceof`, + messageId: `${category_id}.instanceof`, + categoryId: category_id, + type: type.BlockType.BOOLEAN, + param: { + v1: { + type: undefined + }, + v2: { + type: type.ParameterType.STRING, + default: 'Set' + }, + }, + function: (args,util)=>{ + try{ + // @ts-ignore + return args.v1 instanceof window[ args.v2 ]; + }catch(e){ + return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ); + } + } + }, ]);} diff --git a/categorys/temp_var.js b/categorys/temp_var.js index c828495..d889d87 100644 --- a/categorys/temp_var.js +++ b/categorys/temp_var.js @@ -1,5 +1,8 @@ const { type, api } = require('clipcc-extension'); +/**@type {*}*/ +const vm = api.getVmInstance(); + const { my_log_block_error, get_sprite_target @@ -14,20 +17,20 @@ const { /** @param {string} category_id */ module.exports = ( category_id )=>{ api.addBlocks([ - {//2.0.0 + {//2.0.1 opcode: `${category_id}.clear_all`, messageId: `${category_id}.clear_all`, categoryId: category_id, type: type.BlockType.COMMAND, function: (args,util)=>{ Reflect.deleteProperty( - util , + vm , 'bddjr_toolbox_v2_temp_var' ); } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.set_value`, messageId: `${category_id}.set_value`, categoryId: category_id, @@ -49,27 +52,27 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - if( util.bddjr_toolbox_v2_temp_var === undefined ){ - util.bddjr_toolbox_v2_temp_var = {} + if( !vm.bddjr_toolbox_v2_temp_var ){ //undefined + vm.bddjr_toolbox_v2_temp_var = {} } switch( args.operator ){ case '=': - util.bddjr_toolbox_v2_temp_var[ args.name ] = args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] = args.v; break; case '+=': - util.bddjr_toolbox_v2_temp_var[ args.name ] += args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] += args.v; break; case '-=': - util.bddjr_toolbox_v2_temp_var[ args.name ] -= args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] -= args.v; break; case '*=': - util.bddjr_toolbox_v2_temp_var[ args.name ] *= args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] *= args.v; break; case '/=': - util.bddjr_toolbox_v2_temp_var[ args.name ] /= args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] /= args.v; break; case '%=': - util.bddjr_toolbox_v2_temp_var[ args.name ] %= args.v; + vm.bddjr_toolbox_v2_temp_var[ args.name ] %= args.v; break; default: throw `${args.operator} is not allowed operator!`; @@ -80,7 +83,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.get_value`, messageId: `${category_id}.get_value`, categoryId: category_id, @@ -93,17 +96,14 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - if( util.bddjr_toolbox_v2_temp_var === undefined ){ - return undefined - } - return util.bddjr_toolbox_v2_temp_var[ args.name ]; + return vm.bddjr_toolbox_v2_temp_var?.[ args.name ]; }catch(e){ return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) } } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.delete_var`, messageId: `${category_id}.delete_var`, categoryId: category_id, @@ -116,9 +116,9 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - if( util.bddjr_toolbox_v2_temp_var !== undefined ){ + if( vm.bddjr_toolbox_v2_temp_var ){ // !== undefined Reflect.deleteProperty( - util.bddjr_toolbox_v2_temp_var , + vm.bddjr_toolbox_v2_temp_var , args.name ); } @@ -128,7 +128,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.var_exist`, messageId: `${category_id}.var_exist`, categoryId: category_id, @@ -141,10 +141,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - if( util.bddjr_toolbox_v2_temp_var === undefined ){ - return false - } - return util.bddjr_toolbox_v2_temp_var.hasOwnProperty( args.name ); + return !!vm.bddjr_toolbox_v2_temp_var?.hasOwnProperty( args.name ); }catch(e){ return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) } @@ -181,7 +178,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.set_sprite_var_value`, messageId: `${category_id}.set_sprite_var_value`, categoryId: category_id, @@ -215,7 +212,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ function: (args,util)=>{ try{ let target = get_sprite_target( util, args.sprite_type, args.sprite_name ); - if( target.bddjr_toolbox_v2_temp_var === undefined ){ + if( !target.bddjr_toolbox_v2_temp_var ){ //undefined target.bddjr_toolbox_v2_temp_var = {} } switch( args.operator ){ @@ -246,7 +243,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.get_sprite_var_value`, messageId: `${category_id}.get_sprite_var_value`, categoryId: category_id, @@ -270,18 +267,14 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - let target = get_sprite_target( util, args.sprite_type, args.sprite_name ); - if( target.bddjr_toolbox_v2_temp_var === undefined ){ - return undefined - } - return target.bddjr_toolbox_v2_temp_var[ args.name ]; + return get_sprite_target( util, args.sprite_type, args.sprite_name ).bddjr_toolbox_v2_temp_var?.[ args.name ]; }catch(e){ return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) } } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.delete_sprite_var`, messageId: `${category_id}.delete_sprite_var`, categoryId: category_id, @@ -306,7 +299,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ function: (args,util)=>{ try{ let target = get_sprite_target( util, args.sprite_type, args.sprite_name ); - if( target.bddjr_toolbox_v2_temp_var !== undefined ){ + if( !target.bddjr_toolbox_v2_temp_var ){ // !== undefined Reflect.deleteProperty( target.bddjr_toolbox_v2_temp_var , args.name @@ -318,7 +311,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ } }, //=========================================================== - {//2.0.0 + {//2.0.1 opcode: `${category_id}.sprite_var_exist`, messageId: `${category_id}.sprite_var_exist`, categoryId: category_id, @@ -342,11 +335,7 @@ module.exports = ( category_id )=>{ api.addBlocks([ }, function: (args,util)=>{ try{ - let target = get_sprite_target( util, args.sprite_type, args.sprite_name ); - if( target.bddjr_toolbox_v2_temp_var === undefined ){ - return false - } - return target.bddjr_toolbox_v2_temp_var.hasOwnProperty( args.name ); + return !!get_sprite_target( util, args.sprite_type, args.sprite_name ).bddjr_toolbox_v2_temp_var?.hasOwnProperty( args.name ); }catch(e){ return my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) } diff --git a/info.json b/info.json index e1007eb..81fe58b 100644 --- a/info.json +++ b/info.json @@ -1,7 +1,7 @@ { "id": "bddjr.toolbox_v2", "author": "bddjr", - "version": "2.0.0", + "version": "2.0.1", "icon": "assets/icon.webp", "inset_icon": "assets/inset_icon.webp", "api": 1 diff --git a/locales/en.json b/locales/en.json index 7a55673..ec316d9 100644 --- a/locales/en.json +++ b/locales/en.json @@ -83,6 +83,7 @@ "help": "BTBv2 help", "help.jumptogithub": "Click here jump to github", +"help.doc": "Click here jump to doc", "string_and_type": "BTBv2 string and type", @@ -106,7 +107,7 @@ "string_and_type.true": "true", "string_and_type.false": "false", "string_and_type.integer_toString": "interger [v] toString [count]", -"string_and_type.string_parseInt": "⚠⚠NaN⚠⚠ string [v] parseint [count]", +"string_and_type.string_parseInt": "⚠⚠NaN⚠⚠ [v] parseint [count]", "string_and_type.string_trim": "string [v][menu]", "string_and_type.string_trim.menu.trim": "trim", "string_and_type.string_trim.menu.trimStart": "trimStart", @@ -125,6 +126,7 @@ "string_and_type.charCodeAt": "⚠⚠NaN⚠⚠ [v] get char code at [n1]", "string_and_type.string_fromCharCode": "char code [n1] to string", "string_and_type.repeat": "string [v] repeat [n1]", +"string_and_type.instanceof": "[v1] instanceof [v2]", "json": "BTBv2 JSON", @@ -251,7 +253,9 @@ "debug.console.menu.error": "error", "debug.console.menu.debug": "debug", "debug.console.menu.info": "info", -"debug.console.menu.warn": "warn" +"debug.console.menu.warn": "warn", +"debug.temp_var": "global all temp vars , return type [return_type]", +"debug.sprite_temp_var": "[sprite_type][sprite_name] all temp vars , return type [return_type]" } diff --git a/locales/zh-cn.json b/locales/zh-cn.json index baa8c7e..66c6a05 100644 --- a/locales/zh-cn.json +++ b/locales/zh-cn.json @@ -79,6 +79,7 @@ "help": "BTBv2 帮助", "help.jumptogithub": "点此跳转到github", +"help.doc": "点此跳转到文档", "string_and_type": "BTBv2 字符串和类型", @@ -98,7 +99,7 @@ "string_and_type.to_scratch_boolean": "[v] 转成 Scratch 布尔值", "string_and_type.to_js_boolean": "[v] 转成 JS 布尔值", "string_and_type.integer_toString": "整数 [v] toString [count]", -"string_and_type.string_parseInt": "⚠⚠NaN⚠⚠ 字符串 [v] parseint [count]", +"string_and_type.string_parseInt": "⚠⚠NaN⚠⚠ [v] parseint [count]", "string_and_type.string_trim": "字符串 [v][menu]", "string_and_type.text_to_url": "文本转链接 [menu][v]", "string_and_type.url_to_text": "链接转文本 [menu][v]", @@ -209,7 +210,9 @@ "debug": "BTBv2 调试", -"debug.err_msg": "BTBv2 错误消息" +"debug.err_msg": "BTBv2 错误消息", +"debug.temp_var": "全局所有临时变量 , 返回类型 [return_type]", +"debug.sprite_temp_var": "[sprite_type][sprite_name] 所有临时变量 , 返回类型 [return_type]" } diff --git a/myjs/tools.js b/myjs/tools.js index 65cbf1a..6cce777 100644 --- a/myjs/tools.js +++ b/myjs/tools.js @@ -26,7 +26,7 @@ var err_msg = ['']; module.exports.err_msg = err_msg; //=========================================================== -//2.0.0 +//2.0.1 /** * my_log_block_error( util.currentBlock.id, util.currentBlock.opcode, e ) @@ -34,15 +34,14 @@ module.exports.err_msg = err_msg; * @param {string} block_opcode */ function my_log_block_error(block_id, block_opcode, error){ - let err_str = + let err_str = 'ClipCCExtensionBlockError\n' + ( + err_msg[0] = `{"extension":"${extension_id}", "blockid":${JSON.stringify(block_id)}, "opcode":${JSON.stringify(block_opcode)}, "time":${Date.now()}, "error":${JSON.stringify(error.toString())}}` - ; - err_msg[0] = err_str; - err_str = 'ClipCCExtensionBlockError\n' + err_str; + ); console.error( err_str ); console.error( error ); return err_str; @@ -51,24 +50,23 @@ function my_log_block_error(block_id, block_opcode, error){ module.exports.my_log_block_error = my_log_block_error; //=========================================================== -//2.0.0 +//2.0.1 -/** 目前已知 scratch 变量保存的内容仅接受字符串、布尔值、整数、浮点数 */ +/** 目前已知 scratch 变量保存的内容仅接受字符串、布尔值、有限数 */ function to_scratch_type(v){ switch( typeof v ){ case 'string': case 'boolean': return v; case 'number': - if( !Number.isFinite(v) || Number.isNaN(v) ) - break; - return v; + if( Number.isFinite(v) ) + return v; + break; case 'object': try{ return JSON.stringify(v); - }catch{ - break; - } + }catch{} + break; } return String(v); } @@ -161,13 +159,13 @@ function returnType( v, t , b=true ){ module.exports.returnType = returnType; //=========================================================== -//2.0.0 +//2.0.1 /** * * @param {object} util * @param {string} sprite_type stage sprite thisSprite thisClone id drawableID - * @param {string} sprite_name name id drawableID + * @param {string|*} sprite_name name id drawableID * @returns {any} object */ function get_sprite_target( util, sprite_type, sprite_name ){ @@ -227,7 +225,7 @@ function get_sprite_target( util, sprite_type, sprite_name ){ if( util.runtime.targets[ NC.name[ sprite_name ] - ].sprite.name === sprite_name + ].sprite.name == sprite_name //是故意用弱类型判断的 ){ // 有缓存的对象,有对应名称的缓存,直接返回 return util.runtime.targets[ @@ -259,7 +257,7 @@ function get_sprite_target( util, sprite_type, sprite_name ){ for( let i in util.runtime.targets ){ let J = util.runtime.targets[i]; if( - J.sprite.name === sprite_name + J.sprite.name == sprite_name //是故意用弱类型判断的 && !J.isStage //用的是sprite模式,所以肯定不能是背景 ){ @@ -271,13 +269,14 @@ function get_sprite_target( util, sprite_type, sprite_name ){ } // 退出switch break; + case 'id': if(NC.id[ sprite_name ] !== undefined){ // 读缓存 if( util.runtime.targets[ NC.id[ sprite_name ] - ].id === sprite_name + ].id == sprite_name //是故意用弱类型判断的 ){ // 有缓存的对象,有对应名称的缓存,直接返回 return util.runtime.targets[ @@ -308,7 +307,7 @@ function get_sprite_target( util, sprite_type, sprite_name ){ // 重新查找 for( let i in util.runtime.targets ){ let J = util.runtime.targets[i]; - if(J.id === sprite_name){ + if(J.id == sprite_name){ //是故意用弱类型判断的 // 找到了,将要返回的值设置为这个对象,然后退出循环 return_target_number = i; return_target = J; @@ -317,13 +316,14 @@ function get_sprite_target( util, sprite_type, sprite_name ){ } // 退出switch break; + case 'drawableID': if(NC.drawableID[ sprite_name ] !== undefined){ // 读缓存 if( util.runtime.targets[ NC.drawableID[ sprite_name ] - ].drawableID === sprite_name + ].drawableID == sprite_name //是故意用弱类型判断的 ){ // 有缓存的对象,有对应名称的缓存,直接返回 return util.runtime.targets[ @@ -354,7 +354,7 @@ function get_sprite_target( util, sprite_type, sprite_name ){ // 重新查找 for( let i in util.runtime.targets ){ let J = util.runtime.targets[i]; - if(J.drawableID === sprite_name){ + if(J.drawableID == sprite_name){ //是故意用弱类型判断的 // 找到了,将要返回的值设置为这个对象,然后退出循环 return_target_number = i; return_target = J; @@ -409,16 +409,19 @@ function get_sprite_target( util, sprite_type, sprite_name ){ module.exports.get_sprite_target = get_sprite_target; //=========================================================== -//2.0.0 +//2.0.1 /** * * @param {object} target * @param {string} type '' 'list' 'broadcast_msg' - * @param {*} name + * @param {string|*} name * @returns {any} object */ function get_var_obj_from_target( target, type, name ){ + if(typeof name !== 'string'){ + name = String(name); + } const vars = target.variables; if( target.bddjr_toolbox_v2_var_id_cache === undefined ){ // 没有这个缓存变量,那么初始化它 @@ -438,7 +441,7 @@ function get_var_obj_from_target( target, type, name ){ if( cache_this_id !== undefined ){ // 找得到这个值 if( - vars[ cache_this_id ].name === name + vars[ cache_this_id ].name == name //故意用弱类型判断 && vars[ cache_this_id ].type === type ){ @@ -455,7 +458,7 @@ function get_var_obj_from_target( target, type, name ){ // 没能成功返回缓存,那么重新生成并缓存。 for( let i of Object.values(vars) ){ if( - i.name === name + i.name == name //故意用弱类型判断 && i.type === type ){ diff --git a/package.json b/package.json index 4abb1dd..1b017d0 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "", + "name": "clipcc-extension-bddjr_toolbox_v2", "version": "", "author": "", "scripts": {