@@ -4,7 +4,7 @@ import { createComponent, Element, registerComponent } from "../engine/reactive"
44import { ComponentFunction } from "../engine/signal" ;
55import { arrayEquals , fps2ms , isBrowser , isFunction , preciseNow } from "../engine/utils" ;
66import { DisplayObjectProps } from "./types/DisplayObject" ;
7- import { CanvasDOMElement } from "./DOMElement" ;
7+ import { CanvasDOMElement , DOMElementProps } from "./DOMElement" ;
88import { OnHook } from "./DisplayObject" ;
99import { Tick } from "../directives/Scheduler" ;
1010import {
@@ -21,7 +21,7 @@ export interface DOMSpriteFrame {
2121 height : number ;
2222}
2323
24- export interface DOMSpriteProps extends DisplayObjectProps {
24+ export interface DOMSpriteProps extends DOMElementProps {
2525 image ?: string ;
2626 rectangle ?: DOMSpriteFrame | { value ?: DOMSpriteFrame } ;
2727 frames ?: DOMSpriteFrame [ ] ;
@@ -149,9 +149,10 @@ export class CanvasDOMSprite extends CanvasDOMElement {
149149 private playingSubscription ?: Subscription ;
150150 private playingSignal ?: Signal < boolean > ;
151151
152- onInit ( props : DOMSpriteProps ) {
153- this . elementType = props . element ?? "div" ;
154- const nextProps = this . mergeEventAttrs ( { ...props , element : this . elementType } ) ;
152+ onInit ( props : DOMElementProps ) {
153+ const spriteProps = props as DOMSpriteProps ;
154+ this . elementType = spriteProps . element ?? "div" ;
155+ const nextProps = this . mergeEventAttrs ( { ...spriteProps , element : this . elementType } ) ;
155156 this . tickSignal = nextProps . context ?. tick ;
156157 this . applyProps ( nextProps ) ;
157158 super . onInit ( nextProps as any ) ;
@@ -167,8 +168,8 @@ export class CanvasDOMSprite extends CanvasDOMElement {
167168 this . updateAnimationLoop ( ) ;
168169 }
169170
170- onUpdate ( props : DOMSpriteProps ) {
171- const nextProps = this . mergeEventAttrs ( props ) ;
171+ onUpdate ( props : DOMElementProps ) {
172+ const nextProps = this . mergeEventAttrs ( props as DOMSpriteProps ) ;
172173 super . onUpdate ( nextProps as any ) ;
173174 this . applyProps ( nextProps ) ;
174175 this . render ( ) ;
@@ -195,7 +196,9 @@ export class CanvasDOMSprite extends CanvasDOMElement {
195196 rectangle ?: DOMSpriteFrame | { value ?: DOMSpriteFrame } | Signal < DOMSpriteFrame | undefined >
196197 ) : DOMSpriteFrame | undefined {
197198 if ( ! rectangle ) return undefined ;
198- const signalResolved = isSignal ( rectangle ) ? rectangle ( ) : rectangle ;
199+ const signalResolved = isSignal ( rectangle as any )
200+ ? ( rectangle as Signal < DOMSpriteFrame | undefined > ) ( )
201+ : rectangle ;
199202 if ( ! signalResolved ) return undefined ;
200203 const resolved = ( signalResolved as any ) . value ?? signalResolved ;
201204 if ( ! resolved ) return undefined ;
@@ -211,7 +214,7 @@ export class CanvasDOMSprite extends CanvasDOMElement {
211214 ) : DOMSpriteSheetDefinition | Promise < DOMSpriteSheetDefinition | undefined > | undefined {
212215 if ( ! definition ) return undefined ;
213216 const signalResolved = isSignal ( definition as any )
214- ? ( definition as any ) ( )
217+ ? ( definition as Signal < DOMSpriteSheetDefinition | undefined > ) ( )
215218 : definition ;
216219 if ( ! signalResolved ) return undefined ;
217220 return ( signalResolved as any ) . value ?? signalResolved ;
@@ -251,10 +254,12 @@ export class CanvasDOMSprite extends CanvasDOMElement {
251254 ( prev , val ) => ( { ...prev , [ val ] : ( definition as any ) [ val ] } ) ,
252255 { }
253256 ) ;
254- const optionsTextures = {
257+ const optionsTextures : DOMSpriteTextureOptionsMerging = {
255258 ...baseOptions ,
256259 ...textures [ animationName ] ,
257- } as DOMSpriteTextureOptionsMerging ;
260+ spriteWidth : 0 ,
261+ spriteHeight : 0 ,
262+ } ;
258263 optionsTextures . image =
259264 ( textures [ animationName ] as any ) . image ?? definition . image ;
260265
@@ -536,7 +541,8 @@ export class CanvasDOMSprite extends CanvasDOMElement {
536541 }
537542
538543 private bindSheetParams ( context : Element < CanvasDOMElement > ) {
539- const params = context . propObservables ?. sheet ?. params as any ;
544+ const sheetProps = context . propObservables ?. sheet as any ;
545+ const params = sheetProps ?. params as any ;
540546 if ( ! params || typeof params !== "object" ) return ;
541547 for ( const key in params ) {
542548 const value = params [ key ] ;
@@ -645,7 +651,7 @@ export class CanvasDOMSprite extends CanvasDOMElement {
645651 this . lastTickTimestamp = undefined ;
646652
647653 if ( this . tickSignal ?. observable ) {
648- this . tickSubscription = this . tickSignal . observable . subscribe ( ( result : any ) => {
654+ this . tickSubscription = ( this . tickSignal . observable as any ) . subscribe ( ( result : any ) => {
649655 const tick = result ?. value ?? result ;
650656 if ( ! tick ) return ;
651657 if ( this . sheetCurrentAnimation ) {
0 commit comments