123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- import { _decorator, Component, Node, SpriteFrame } from 'cc';
- import { tools } from '../tools';
- const { ccclass, property } = _decorator;
- export class img_data{
- public id:number = 0;
- public url:string = "";
- constructor(id,url){
- this.id = id
- this.url = url
- }
- }
- @ccclass('imageCacheManager')
- export class imageCacheManager {
- private static game_car_map:Map<number,SpriteFrame> = new Map
- private static home_car_map:Map<number,SpriteFrame> = new Map
- private static rank_car_map:Map<number,SpriteFrame> = new Map
- private static car_name_map:Map<number,string> = new Map
-
- public static start_cache(cb){
- let game_car_list:img_data[]=[]
- let home_car_list:img_data[]=[]
- let rank_car_list:img_data[]=[]
- let count = 3
- let num = 0
- let call_back = ()=>{
- num++;
- if(num>=count){
- cb()
- }
- }
- for (let index = 0; index < tools.all_car_list.length; index++) {
- const element = tools.all_car_list[index];
- game_car_list.push(new img_data(element.id,element.cover))
- home_car_list.push(new img_data(element.id,element.home_cover))
- rank_car_list.push(new img_data(element.id,element.ranking_cover))
- imageCacheManager.car_name_map.set(element.id, element.name)
- }
- imageCacheManager.cache_game_car(game_car_list,call_back)
- imageCacheManager.cache_home_car(home_car_list,call_back)
- imageCacheManager.cache_rank_car(rank_car_list,call_back)
- }
- public static cache_game_car(list:img_data[],finish_cb){ //游戏中图
- let count = list.length
- let num = 0
- let cb = (data)=>{
- num++;
- imageCacheManager.game_car_map.set(data.tag,data.sf)
- if(num>=count){
- finish_cb()
- }
- }
- for (let index = 0; index < count; index++) {
- tools.loadRemoteImg(list[index].url,cb,list[index].id)
- }
-
- }
- public static cache_home_car(list:img_data[],finish_cb){ // 主页图
- let count = list.length
- let num = 0
- let cb = (data)=>{
- num++;
- imageCacheManager.home_car_map.set(data.tag,data.sf)
- if(num>=count){
- finish_cb()
- }
- }
- for (let index = 0; index < count; index++) {
- tools.loadRemoteImg(list[index].url,cb,list[index].id)
- }
- }
- public static cache_rank_car(list:img_data[],finish_cb){ // 排行图
- let count = list.length
- let num = 0
- let cb = (data)=>{
- num++;
- imageCacheManager.rank_car_map.set(data.tag,data.sf)
- if(num>=count){
- finish_cb()
- }
- }
- for (let index = 0; index < count; index++) {
- tools.loadRemoteImg(list[index].url,cb,list[index].id)
- }
- }
- public static getRankCarImageById(id:number){
- return imageCacheManager.rank_car_map.get(id)
- }
- public static getHomeCarImageById(id:number){
- return imageCacheManager.home_car_map.get(id)
- }
- public static getGameCarImageById(id:number){
- return imageCacheManager.game_car_map.get(id)
- }
- public static getCarNameById(id:number) {
- return imageCacheManager.car_name_map.get(id)
- }
- }
|