kill bug & new function
This commit is contained in:
parent
4a801cbc85
commit
144ef9755e
@ -189,7 +189,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- injection -->
|
<!-- injection -->
|
||||||
<script src='libs/thirdparty/browser-polyfill.min.js'></script>
|
|
||||||
<script src='libs/thirdparty/lz-string.min.js'></script>
|
<script src='libs/thirdparty/lz-string.min.js'></script>
|
||||||
<script src='libs/thirdparty/priority-queue.min.js'></script>
|
<script src='libs/thirdparty/priority-queue.min.js'></script>
|
||||||
<script src='libs/thirdparty/localforage.min.js'></script>
|
<script src='libs/thirdparty/localforage.min.js'></script>
|
||||||
|
|||||||
669
libs/control.js
669
libs/control.js
File diff suppressed because it is too large
Load Diff
2
libs/thirdparty/browser-polyfill.min.js
vendored
2
libs/thirdparty/browser-polyfill.min.js
vendored
File diff suppressed because one or more lines are too long
707
libs/ui.js
707
libs/ui.js
File diff suppressed because it is too large
Load Diff
3428
project/functions.js
3428
project/functions.js
File diff suppressed because it is too large
Load Diff
170
runtime.d.ts
vendored
170
runtime.d.ts
vendored
@ -8,6 +8,8 @@ type move = 'forward' | direction
|
|||||||
type loc = { direction: direction, x: number, y: number }
|
type loc = { direction: direction, x: number, y: number }
|
||||||
type rgbarray = [number, number, number, number]
|
type rgbarray = [number, number, number, number]
|
||||||
|
|
||||||
|
type Events = MotaAction[] | string
|
||||||
|
|
||||||
type Block = {
|
type Block = {
|
||||||
x: number,
|
x: number,
|
||||||
y: number,
|
y: number,
|
||||||
@ -45,7 +47,53 @@ type Floor = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type ResolvedMap = {
|
type ResolvedMap = {
|
||||||
|
floorId: string
|
||||||
|
afterBattle: { [x: string]: Events }
|
||||||
|
afterOpenDoor: { [x: string]: Events }
|
||||||
|
afterGetItem: { [x: string]: Events }
|
||||||
|
autoEvent: Event
|
||||||
|
beforeBattle: { [x: string]: Events }
|
||||||
|
canFlyFrom: boolean
|
||||||
|
canFltTo: boolean
|
||||||
|
canUseQuickShop: boolean
|
||||||
|
cannotMove: Object
|
||||||
|
cannotMoveIn: Object
|
||||||
|
cannotViewMap: boolean
|
||||||
|
changeFloor: {
|
||||||
|
[x: string]: {
|
||||||
|
floorId: ':before' | ':after' | ':now' | string
|
||||||
|
loc?: [number, number]
|
||||||
|
stair?: 'upFloor' | 'downFloor' | ':symmetry' | ':symmetry_x' | ':symmetry_y' | 'flyPoint'
|
||||||
|
direction?: 'left' | 'right' | 'up' | 'down' | ':left' | ':right' | ':back' | ':hero' | ':backhero'
|
||||||
|
time?: number
|
||||||
|
ignoreChangeFloor?: boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defaultGround: string
|
||||||
|
bgm: string | Array<string>
|
||||||
|
bgmap: number[][]
|
||||||
|
/** 事件层 */
|
||||||
|
map: number[][]
|
||||||
|
fgmap: number[][]
|
||||||
|
width: number
|
||||||
|
height: number
|
||||||
|
images: Array<{
|
||||||
|
canvas: 'bg' | 'auto' | 'fg'
|
||||||
|
name: string
|
||||||
|
x: number
|
||||||
|
y: number
|
||||||
|
reverse?: ':x' | ':y' | ':o'
|
||||||
|
disable?: boolean
|
||||||
|
sx?: number
|
||||||
|
sy?: number
|
||||||
|
w?: number
|
||||||
|
h?: number
|
||||||
|
frame?: numer
|
||||||
|
}>
|
||||||
|
name: string
|
||||||
|
ratio: number
|
||||||
|
title: string
|
||||||
|
weather: [string, number]
|
||||||
}
|
}
|
||||||
|
|
||||||
type Enemy = {
|
type Enemy = {
|
||||||
@ -150,8 +198,42 @@ type gameStatus = {
|
|||||||
fgmaps: { [key: string]: number[][] }
|
fgmaps: { [key: string]: number[][] }
|
||||||
mapBlockObjs: { [key: string]: any }
|
mapBlockObjs: { [key: string]: any }
|
||||||
/** 显伤伤害 */
|
/** 显伤伤害 */
|
||||||
checkBlock: {}
|
checkBlock: {
|
||||||
damage: {}
|
ambush: { [x: string]: [number, number, string, direction] }
|
||||||
|
repulse: { [x: string]: [number, number, string, direction] }
|
||||||
|
damage: { [x: string]: number }
|
||||||
|
needCache: boolean
|
||||||
|
type: { [x: string]: { [x: string]: boolean } }
|
||||||
|
cache: {
|
||||||
|
[s: string]: {
|
||||||
|
hp_buff: number
|
||||||
|
atk_buff: number
|
||||||
|
def_buff: number
|
||||||
|
guards: [number, number, string]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
damage: {
|
||||||
|
posX: number
|
||||||
|
posY: number
|
||||||
|
data: Array<{
|
||||||
|
[x: string]: {
|
||||||
|
text: string
|
||||||
|
px: number
|
||||||
|
py: number
|
||||||
|
color: string | Array<number>
|
||||||
|
}
|
||||||
|
}>
|
||||||
|
extraData: Array<{
|
||||||
|
[x: string]: {
|
||||||
|
text: string
|
||||||
|
px: number
|
||||||
|
py: number
|
||||||
|
color: string | Array<number>
|
||||||
|
alpha: number
|
||||||
|
}
|
||||||
|
}>
|
||||||
|
}
|
||||||
|
|
||||||
lockControl: boolean
|
lockControl: boolean
|
||||||
|
|
||||||
@ -182,13 +264,13 @@ type gameStatus = {
|
|||||||
ctrlDown: boolean
|
ctrlDown: boolean
|
||||||
|
|
||||||
// 路线&回放
|
// 路线&回放
|
||||||
route: [],
|
route: string[],
|
||||||
replay: {
|
replay: {
|
||||||
replaying: boolean
|
replaying: boolean
|
||||||
pausing: boolean
|
pausing: boolean
|
||||||
/** 正在某段动画中 */animate: boolean
|
/** 正在某段动画中 */animate: boolean
|
||||||
toReplay: []
|
toReplay: string[]
|
||||||
totalList: []
|
totalList: string[]
|
||||||
speed: number
|
speed: number
|
||||||
steps: number
|
steps: number
|
||||||
save: []
|
save: []
|
||||||
@ -197,13 +279,13 @@ type gameStatus = {
|
|||||||
// event事件
|
// event事件
|
||||||
shops: {}
|
shops: {}
|
||||||
event: {
|
event: {
|
||||||
id: null
|
id: string
|
||||||
data: null
|
data: any
|
||||||
selection: null
|
selection: any
|
||||||
ui: null
|
ui: any
|
||||||
interval: null
|
interval: number
|
||||||
}
|
}
|
||||||
autoEvents: []
|
autoEvents: Events
|
||||||
textAttribute: {
|
textAttribute: {
|
||||||
position: string
|
position: string
|
||||||
offset: number
|
offset: number
|
||||||
@ -253,28 +335,6 @@ declare class control {
|
|||||||
*/
|
*/
|
||||||
updateStatusBar(doNotCheckAutoEvents?: boolean): void
|
updateStatusBar(doNotCheckAutoEvents?: boolean): void
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置某个自定义变量或flag
|
|
||||||
* @example core.setFlag('xyz', 2) // 设置变量xyz为2
|
|
||||||
* @param name 变量名
|
|
||||||
* @param value 要设置的值
|
|
||||||
*/
|
|
||||||
setFlag(name: string, value: any): void
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取某个自定义变量或flag
|
|
||||||
* @example core.getFlag('point', 2) // 获得变量point的值;如果该变量从未定义过则返回2
|
|
||||||
* @param name 变量名
|
|
||||||
* @param defaultValue 该变量不存在时返回的值。
|
|
||||||
* @returns 变量的值
|
|
||||||
*/
|
|
||||||
getFlag(name: string, defaultValue: any): any
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 返回是否存在某个变量且不为0。等价于 core.getFlag('xyz', 0)!=0
|
|
||||||
*/
|
|
||||||
hasFlag(name: string): boolean
|
|
||||||
|
|
||||||
/** 删除某个flag/变量 */
|
/** 删除某个flag/变量 */
|
||||||
removeFlag(name: string): void
|
removeFlag(name: string): void
|
||||||
|
|
||||||
@ -406,7 +466,7 @@ declare class control {
|
|||||||
nearHero(x: number, y: number, n?: number): boolean
|
nearHero(x: number, y: number, n?: number): boolean
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重算并绘制地图显伤
|
* 请不要直接使用该函数,请使用core.updateStatusBar()代替!重算并绘制地图显伤
|
||||||
* @example core.updateDamage(); // 更新当前地图的显伤,绘制在显伤层(废话)
|
* @example core.updateDamage(); // 更新当前地图的显伤,绘制在显伤层(废话)
|
||||||
* @param floorId 地图id,不填视为当前地图。预览地图时填写
|
* @param floorId 地图id,不填视为当前地图。预览地图时填写
|
||||||
* @param ctx 绘制到的画布,如果填写了就会画在该画布而不是显伤层
|
* @param ctx 绘制到的画布,如果填写了就会画在该画布而不是显伤层
|
||||||
@ -445,10 +505,10 @@ declare class control {
|
|||||||
* @example core.getRealStatus('atk'); // 计算主角的攻击力,包括百分比修正。战斗使用的就是这个值
|
* @example core.getRealStatus('atk'); // 计算主角的攻击力,包括百分比修正。战斗使用的就是这个值
|
||||||
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则乘法会得到NaN
|
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则乘法会得到NaN
|
||||||
*/
|
*/
|
||||||
getRealStatus(name: string): any
|
getRealStatus<K extends keyof HeroStatus>(name: K): HeroStatus[K]
|
||||||
|
|
||||||
/** 获得某个状态的名字 */
|
/** 获得某个状态的名字 */
|
||||||
getStatusLabel(name: string): string
|
getStatusLabel<K extends keyof HeroStatus>(name: K): string
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置主角某个属性的百分比修正倍率,初始值为1,
|
* 设置主角某个属性的百分比修正倍率,初始值为1,
|
||||||
@ -457,7 +517,7 @@ declare class control {
|
|||||||
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则随后的乘法会得到NaN
|
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则随后的乘法会得到NaN
|
||||||
* @param value 新的百分比修正倍率,不填(效果上)视为1
|
* @param value 新的百分比修正倍率,不填(效果上)视为1
|
||||||
*/
|
*/
|
||||||
setBuff(name: string, value?: number): void
|
setBuff<K extends keyof HeroStatus>(name: K, value?: HeroStatus[K]): void
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 增减主角某个属性的百分比修正倍率,加减法叠加和抵消。等价于 core.setBuff(name, core.getBuff(name) + value)
|
* 增减主角某个属性的百分比修正倍率,加减法叠加和抵消。等价于 core.setBuff(name, core.getBuff(name) + value)
|
||||||
@ -465,21 +525,21 @@ declare class control {
|
|||||||
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则随后的乘法会得到NaN
|
* @param name 属性的英文名,请注意只能用于数值类属性哦,否则随后的乘法会得到NaN
|
||||||
* @param value 倍率的增量
|
* @param value 倍率的增量
|
||||||
*/
|
*/
|
||||||
addBuff(name: string, value: number): void
|
addBuff<K extends keyof HeroStatus>(name: K, value: HeroStatus[K]): void
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 读取主角某个属性的百分比修正倍率,初始值为1
|
* 读取主角某个属性的百分比修正倍率,初始值为1
|
||||||
* @example core.getBuff('atk'); // 主角当前能发挥出多大比例的攻击力
|
* @example core.getBuff('atk'); // 主角当前能发挥出多大比例的攻击力
|
||||||
* @param name 属性的英文名
|
* @param name 属性的英文名
|
||||||
*/
|
*/
|
||||||
getBuff(name: string): number
|
getBuff<K extends keyof HeroStatus>(name: HeroStatus[K]): number
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得或移除毒衰咒效果
|
* 获得或移除毒衰咒效果
|
||||||
* @param action 获得还是移除,'get'为获得,'remove'为移除
|
* @param action 获得还是移除,'get'为获得,'remove'为移除
|
||||||
* @param type 要获得或移除的毒衰咒效果
|
* @param type 要获得或移除的毒衰咒效果
|
||||||
*/
|
*/
|
||||||
triggerDebuff(action: string, type: string|string[]): void
|
triggerDebuff(action: string, type: string | string[]): void
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置勇士位置
|
* 设置勇士位置
|
||||||
@ -516,7 +576,7 @@ declare class control {
|
|||||||
* 升级扣除模式下会返回经验差值;非扣除模式下会返回总共需要的经验值。
|
* 升级扣除模式下会返回经验差值;非扣除模式下会返回总共需要的经验值。
|
||||||
* 如果无法进行下次升级,返回null。
|
* 如果无法进行下次升级,返回null。
|
||||||
*/
|
*/
|
||||||
getNextLvUpNeed() : number
|
getNextLvUpNeed(): number
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置一个flag变量
|
* 设置一个flag变量
|
||||||
@ -556,13 +616,13 @@ declare class control {
|
|||||||
* @param type 新天气的类型,不填视为无天气
|
* @param type 新天气的类型,不填视为无天气
|
||||||
* @param level 新天气(晴天除外)的级别,必须为不大于10的正整数,不填视为5
|
* @param level 新天气(晴天除外)的级别,必须为不大于10的正整数,不填视为5
|
||||||
*/
|
*/
|
||||||
setWeather(type?: 'rain' | 'snow' | 'sun' | 'fog' | 'cloud', level?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10): void
|
setWeather(type?: 'rain' | 'snow' | 'sun' | 'fog' | 'cloud' | string, level?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10): void
|
||||||
|
|
||||||
/** 注册一个天气 */
|
/** 注册一个天气 */
|
||||||
registerWeather(name: string, initFunc: (level: number) => void, frameFunc?: (timestamp: number, level: number) => void): void
|
registerWeather(name: string, initFunc: (level: number) => void, frameFunc?: (timestamp: number, level: number) => void): void
|
||||||
|
|
||||||
/** 注销一个天气 */
|
/** 注销一个天气 */
|
||||||
unregisterWeather(name: string) : void;
|
unregisterWeather(name: string): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更改画面色调,不计入存档。如需长期生效请使用core.events._action_setCurtain()函数
|
* 更改画面色调,不计入存档。如需长期生效请使用core.events._action_setCurtain()函数
|
||||||
@ -581,7 +641,7 @@ declare class control {
|
|||||||
* @param times 闪烁的总次数,不填或填0都视为1
|
* @param times 闪烁的总次数,不填或填0都视为1
|
||||||
* @param callback 闪烁全部完毕后的回调函数,可选
|
* @param callback 闪烁全部完毕后的回调函数,可选
|
||||||
*/
|
*/
|
||||||
screenFlash(color: [number, number, number, number], time: number, times?: number, moveMode?: string, callback?: () => void): void
|
screenFlash(color: [number, number, number, number?], time: number, times?: number, moveMode?: string, callback?: () => void): void
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 播放背景音乐,中途开播但不计入存档且只会持续到下次场景切换。如需长期生效请将背景音乐的文件名赋值给flags.__bgm__
|
* 播放背景音乐,中途开播但不计入存档且只会持续到下次场景切换。如需长期生效请将背景音乐的文件名赋值给flags.__bgm__
|
||||||
@ -910,7 +970,7 @@ declare class events {
|
|||||||
* @param callback 新的回调函数,可选
|
* @param callback 新的回调函数,可选
|
||||||
* @param addToLast 插入的位置,true表示插入到末尾,否则插入到开头
|
* @param addToLast 插入的位置,true表示插入到末尾,否则插入到开头
|
||||||
*/
|
*/
|
||||||
insertAction(action: string | MotaAction | MotaAction[], x?: number, y?: number, callback?: () => void, addToLast?: boolean): void
|
insertAction(action: Events, x?: number, y?: number, callback?: () => void, addToLast?: boolean): void
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置一项敌人属性并计入存档
|
* 设置一项敌人属性并计入存档
|
||||||
@ -1072,7 +1132,7 @@ declare class events {
|
|||||||
tryUseItem(itemId: string): void
|
tryUseItem(itemId: string): void
|
||||||
|
|
||||||
/** 初始化游戏 */
|
/** 初始化游戏 */
|
||||||
resetGame(hero?: any, hard?: any, floorId?: string, maps?: any, values?: any): void
|
resetGame(hero?: HeroStatus, hard?: any, floorId?: string, maps?: any, values?: any): void
|
||||||
|
|
||||||
/** 游戏获胜事件 */
|
/** 游戏获胜事件 */
|
||||||
win(reason?: string, norank?: boolean, noexit?: boolean): void
|
win(reason?: string, norank?: boolean, noexit?: boolean): void
|
||||||
@ -1641,7 +1701,7 @@ declare class maps {
|
|||||||
* @param showDisable 隐藏点是否计入,true表示计入
|
* @param showDisable 隐藏点是否计入,true表示计入
|
||||||
* @returns 一个详尽的数组,一般只用到其长度
|
* @returns 一个详尽的数组,一般只用到其长度
|
||||||
*/
|
*/
|
||||||
searchBlock(id: string, floorId?: string|Array<string>, showDisable?: boolean): Array<{ floorId: string, index: number, x: number, y: number, block: Block }>
|
searchBlock(id: string, floorId?: string | Array<string>, showDisable?: boolean): Array<{ floorId: string, index: number, x: number, y: number, block: Block }>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据给定的筛选函数搜索全部满足条件的图块
|
* 根据给定的筛选函数搜索全部满足条件的图块
|
||||||
@ -1651,7 +1711,7 @@ declare class maps {
|
|||||||
* @param showDisable 隐藏点是否计入,true表示计入
|
* @param showDisable 隐藏点是否计入,true表示计入
|
||||||
* @returns 一个详尽的数组
|
* @returns 一个详尽的数组
|
||||||
*/
|
*/
|
||||||
searchBlockWithFilter(blockFilter: (Block) => boolean, floorId?: string|Array<string>, showDisable?: boolean): Array<{ floorId: string, index: number, x: number, y: number, block: Block }>
|
searchBlockWithFilter(blockFilter: (Block) => boolean, floorId?: string | Array<string>, showDisable?: boolean): Array<{ floorId: string, index: number, x: number, y: number, block: Block }>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 显示(隐藏或显示的)图块,此函数将被“显示事件”指令和勾选了“不消失”的“移动/跳跃事件”指令(如阻击怪)的终点调用
|
* 显示(隐藏或显示的)图块,此函数将被“显示事件”指令和勾选了“不消失”的“移动/跳跃事件”指令(如阻击怪)的终点调用
|
||||||
@ -1784,7 +1844,7 @@ declare class maps {
|
|||||||
stopAnimate(id?: number, doCallback?: boolean): void
|
stopAnimate(id?: number, doCallback?: boolean): void
|
||||||
|
|
||||||
/** 获得当前正在播放的所有(指定)动画的id列表 */
|
/** 获得当前正在播放的所有(指定)动画的id列表 */
|
||||||
getPlayingAnimates(name?: string) : Array<number>
|
getPlayingAnimates(name?: string): Array<number>
|
||||||
|
|
||||||
/** 加载某个楼层(从剧本或存档中) */
|
/** 加载某个楼层(从剧本或存档中) */
|
||||||
loadFloor(floorId?: string, map?: any): any
|
loadFloor(floorId?: string, map?: any): any
|
||||||
@ -1910,7 +1970,7 @@ declare class maps {
|
|||||||
/** @file loader.js 主要负责资源的加载 */
|
/** @file loader.js 主要负责资源的加载 */
|
||||||
declare class loader {
|
declare class loader {
|
||||||
/** 加载一系列图片 */
|
/** 加载一系列图片 */
|
||||||
loadImages(dir: any, names: any, toSave: any, callback?: () => any) : any
|
loadImages(dir: any, names: any, toSave: any, callback?: () => any): any
|
||||||
|
|
||||||
/** 加载某一张图片 */
|
/** 加载某一张图片 */
|
||||||
loadImage(dir: any, imgName?: any, callback?: () => any): any
|
loadImage(dir: any, imgName?: any, callback?: () => any): any
|
||||||
@ -2055,7 +2115,7 @@ declare class items {
|
|||||||
* @param beComparedEquipId 装备乙的id
|
* @param beComparedEquipId 装备乙的id
|
||||||
* @returns 两装备的各属性差,甲减乙,0省略
|
* @returns 两装备的各属性差,甲减乙,0省略
|
||||||
*/
|
*/
|
||||||
compareEquipment(compareEquipId: string, beComparedEquipId: string): { [key: string]: number}
|
compareEquipment(compareEquipId: string, beComparedEquipId: string): { [key: string]: number }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存当前套装
|
* 保存当前套装
|
||||||
@ -2090,7 +2150,7 @@ declare class items {
|
|||||||
* @param operator 操作符,可选,如+=表示在原始值上增加
|
* @param operator 操作符,可选,如+=表示在原始值上增加
|
||||||
* @param prefix 独立开关前缀,一般不需要
|
* @param prefix 独立开关前缀,一般不需要
|
||||||
*/
|
*/
|
||||||
setEquip(equipId: string, valueType: string, name: string, value: any, operator?: string, prefix?: string): void
|
setEquip(equipId: string, valueType: string, name: string, value: any, operator?: string, prefix?: string): void
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @file ui.js 主要用来进行UI窗口的绘制,如对话框、怪物手册、楼传器、存读档界面等等。*/
|
/** @file ui.js 主要用来进行UI窗口的绘制,如对话框、怪物手册、楼传器、存读档界面等等。*/
|
||||||
@ -2246,7 +2306,7 @@ declare class ui {
|
|||||||
drawUIEventSelector(code: number, background: string, x: number, y: number, w: number, h: number, z?: number): void
|
drawUIEventSelector(code: number, background: string, x: number, y: number, w: number, h: number, z?: number): void
|
||||||
|
|
||||||
/** 清除一个或多个选择光标 */
|
/** 清除一个或多个选择光标 */
|
||||||
clearUIEventSelector(code: number|number[]): void
|
clearUIEventSelector(code: number | number[]): void
|
||||||
|
|
||||||
/** 绘制一个确认框 */
|
/** 绘制一个确认框 */
|
||||||
drawConfirmBox(text: string, yesCallback?: () => void, noCallback?: () => void): void
|
drawConfirmBox(text: string, yesCallback?: () => void, noCallback?: () => void): void
|
||||||
@ -2412,7 +2472,7 @@ declare class utils {
|
|||||||
clone<T>(data?: T, filter?: (name: string, value: any) => boolean, recursion?: boolean): T
|
clone<T>(data?: T, filter?: (name: string, value: any) => boolean, recursion?: boolean): T
|
||||||
|
|
||||||
/** 深拷贝一个1D或2D的数组 */
|
/** 深拷贝一个1D或2D的数组 */
|
||||||
cloneArray(data?: Array<number>|Array<Array<number>>): Array<number>|Array<Array<number>>
|
cloneArray(data?: Array<number> | Array<Array<number>>): Array<number> | Array<Array<number>>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 等比例切分一张图片
|
* 等比例切分一张图片
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user