diff --git a/src/core/render/preset/graphics.ts b/src/core/render/preset/graphics.ts index 4328b8d..def6470 100644 --- a/src/core/render/preset/graphics.ts +++ b/src/core/render/preset/graphics.ts @@ -196,11 +196,11 @@ export abstract class GraphicItemBase if (isNil(prevValue) && isNil(nextValue)) return; switch (key) { case 'fill': - if (!this.assertType(nextValue, 'number', key)) return; + if (!this.assertType(nextValue, 'boolean', key)) return; this.checkMode(GraphicModeProp.Fill, nextValue); break; case 'stroke': - if (!this.assertType(nextValue, 'number', key)) return; + if (!this.assertType(nextValue, 'boolean', key)) return; this.checkMode(GraphicModeProp.Stroke, nextValue); break; case 'strokeAndFill': diff --git a/src/core/render/preset/misc.ts b/src/core/render/preset/misc.ts index 523aa68..37d8126 100644 --- a/src/core/render/preset/misc.ts +++ b/src/core/render/preset/misc.ts @@ -217,9 +217,9 @@ export class Icon extends RenderItem implements IAnimateFrame { /** 图标id */ icon: AllNumbers = 0; /** 帧数 */ - frame: number = 0; + frame?: number = 0; /** 是否启用动画 */ - animate: boolean = false; + animate?: boolean = false; /** 图标的渲染信息 */ private renderable?: RenderableData | AutotileRenderable; @@ -245,21 +245,13 @@ export class Icon extends RenderItem implements IAnimateFrame { } else { const [x1, y1, w1, h1] = renderable.render[frame]; if (renderable.autotile) { - ctx.drawImage( - renderable.image[0], - x1, - y1, - w1, - h1, - 0, - 0, - cw, - ch - ); + const img = renderable.image[0]; + ctx.drawImage(img, x1, y1, w1, h1, 0, 0, cw, ch); } else { ctx.drawImage(renderable.image, x1, y1, w1, h1, 0, 0, cw, ch); } - this.update(this), renderEmits.addFramer(this); + this.update(this); + renderEmits.addFramer(this); } } @@ -276,13 +268,17 @@ export class Icon extends RenderItem implements IAnimateFrame { return; } else { this.icon = num; - renderable.animate = 0; - this.renderable = renderable; + this.frame = renderable.frame; } this.update(); } + destroy(): void { + renderEmits.removeFramer(this); + super.destroy(); + } + /** * 更新动画帧 */