//資源文件加載器,確保canvas在圖片加載完成后開始渲染import {Resources} from './Resources.js'export class ResourceLoader { ? ?constructor() { ? ? ? ?this.map = new Map(Resources) ? ? ? ?//替換map中value(圖片路徑)為已加載好圖片資源的圖片本身 ? ? ? ?for (let[key, value] of this.map) { ? ? ? ? ? ?//log(value) ? ? ? ? ? ?var image = new Image() ? ? ? ? ? ?image.src = value ? ? ? ? ? ?this.map.set = (key, image) ? ? ? ? ? ?//log('haha',this.map) ? ? ? ?} ? ?} ? ?onLoaded(callback) { ? ? ? ?let loadedCount = 0 ? ? ? ?//log('111') ? ? ? ?for (let value of this.map.values()) { ? ? ? ? ? ?//log(value) ? ? ? ? ? ?//log(this.map.values()) ? ? ? ? ? ?//箭頭函數(shù),不傳參數(shù),其中this能直接指向ResourceLoader ? ? ? ? ? ?value.onload = () => { ? ? ? ? ? ? ? ?loadedCount++ ? ? ? ? ? ? ? ?if(loadedCount >= this.map.size) { ? ? ? ? ? ? ? ? ? ?callback(this.map) ? ? ? ? ? ? ? ?} ? ? ? ? ? ?} ? ? ? ?} ? ? ? ?console.log('111') ? ?} ? ?//靜態(tài),可通過ResourceLoader.create()訪問這個(gè)方法 ? ?static create() { ? ? ? ?return new ResourceLoader() ? ?}}
就很奇怪。。。Uncaught TypeError: Cannot create property 'onload' on string 'res/background.png'
小石ssw
2018-03-20 23:38:42