| 
									
										
										
										
											2024-03-08 15:51:26 +08:00
										 |  |  | import { _decorator, Component, Node, SpriteFrame, Texture2D, v2 } from 'cc'; | 
					
						
							|  |  |  | import { ImagePack } from '../ImagePack/ImagePack'; | 
					
						
							|  |  |  | const { ccclass, property } = _decorator; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @ccclass('BaseSpriteFrame') | 
					
						
							|  |  |  | export class BaseSpriteFrame { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //初始化状态
 | 
					
						
							|  |  |  |     InitState: boolean = false; | 
					
						
							|  |  |  |     //精灵帧
 | 
					
						
							|  |  |  |     _SpriteFrame: SpriteFrame; | 
					
						
							|  |  |  |     //回调函数
 | 
					
						
							|  |  |  |     CallBackFunc: Function; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor(ImgPath: string, ImgIndex: number, CallBack?: Function) { | 
					
						
							|  |  |  |         if (CallBack) this.CallBackFunc = CallBack; | 
					
						
							|  |  |  |         ImagePack.getInstance().ReadNpkTable("sprite/" + ImgPath.toLocaleLowerCase(), (ImgObj) => { | 
					
						
							|  |  |  |             const Png = ImgObj.Png_List[ImgIndex]; | 
					
						
							|  |  |  |             this._SpriteFrame = new SpriteFrame(); | 
					
						
							|  |  |  |             let tex = new Texture2D(); | 
					
						
							|  |  |  |             tex.reset({ | 
					
						
							|  |  |  |                 width: Png.Width, | 
					
						
							|  |  |  |                 height: Png.Height, | 
					
						
							|  |  |  |                 format: Texture2D.PixelFormat.RGBA8888, | 
					
						
							|  |  |  |                 mipmapLevel: 0, | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |             tex.uploadData(Png.PNGdata); | 
					
						
							|  |  |  |             // 更新 0 级 Mipmap。
 | 
					
						
							|  |  |  |             tex.updateImage(); | 
					
						
							|  |  |  |             this._SpriteFrame.texture = tex; | 
					
						
							|  |  |  |             this._SpriteFrame.offset = v2(Png.Xpos, -Png.Ypos); | 
					
						
							| 
									
										
										
										
											2024-03-08 19:36:26 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-08 15:51:26 +08:00
										 |  |  |             this.CallBackFunc(this._SpriteFrame); | 
					
						
							|  |  |  |             this.InitState = true; | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |