2017-09-19 9 views
0

json을 사용하여 spriteSheetFrame을로드했습니다.PIXI spriteSheet 제거 텍스처 캐시

const loader = new PIXI.loaders.Loader(); 
loader.add('bunny', 'data/bunny.png') 
     .add('spaceship', 'assets/spritesheet.json'); 
loader.load((loader, resources) => { 

}); 

이 spritesheet.json을 사용하여로드 된 모든 TextureCache 만 제거하고 싶습니다.

나는 시도했다.

PIXI.Texture.removeFromCache("spaceship"); 
PIXI.Texture.removeTextureFromCache("spaceship"); 

그러나 PIXI.TextureCache에는 모든 spriteFrame의 이름이 포함되어 있습니다. 그리고 아직도 이미지 양식 프레임을 사용할 수 있습니다. 이것을 사용하십시오.

var bgSprite2 = PIXI.Sprite.fromFrame("ship1"); 
bgSprite2.anchor.set(0.5, 0.5); 
var pos = {x: 300, y: 200}; 
bgSprite2.position.set(pos.x, pos.y); 
stage.addChild(bgSprite2); 

TextureCache에서 spriteFrame의 모든 항목을 제거하고 싶습니다. 새로운 spriteFrame 세트를로드하고 싶습니다.

나는 두 가지 다른 우주선의 스프라이트 시트 애니메이션을 가지고 있기 때문에이 작업을 수행하고 있지만 두 우주선의 개별 심볼 이름은 동일합니다.

+0

스프라이트 시트가 json-data-wise (이미지가 다르다)와 동일하면 텍스처를 변경/교체하는 경우는 어떻습니까? 난 왜 당신이 2 동일하고 당신이 먼저 제거하고 두 번째를 사용하고 싶지 궁금합니다. – Hachi

답변

0

나는 Hachi와 함께 계속해서 파괴하고 재창조하는 것보다는 텍스처를 교체하는 것으로부터 약간의 성능을 얻을 수 있다는 것에 동의 할 것입니다. 캐싱이 답이 될 수 있습니다.

그러면 결국 아무 것도 남아 있지 않은지 확인하기 위해 끝낼 때 파괴를 호출 할 수 있습니다.