2015-06-22 515 views
0

我需要獲取圖像的大小,然後在調用autorenderer之前將其添加到舞臺上,並將其設置爲defaultX和defaultY,但似乎無法抓住大小。 我如何抓住尺寸? 另外,從我到目前爲止,我認爲設置大小的最佳方式是使用autorenderer。但如果我稍後調整大小(),那麼這裏的含義是什麼? 任何幫助將不勝感激。謝謝。PIXI獲取圖像寬度,高度

我的代碼:

this.stage = new PIXI.Container(); 
var texture = PIXI.Texture.fromImage('background.png'); //1610x640 
var spr = new PIXI.Sprite(texture); 
this.stage.addChild(spr); 

defaultX = texture.width; 
defaultY = texture.height; 

this.renderer = PIXI.autoDetectRenderer(defaultX, defaultY); //640x690 

this.renderer.resize(x,y); // I know this works with other values 
          // eg if I hardcode with 1610,640 
          // but texture.width doesn't work and 
          // I don't want to hardcode it 

回答

1

,當你調用texture.width您的圖片無法加載。

我用接下來的建設:

this.stage = new PIXI.Container(); 
this.renderer = PIXI.autoDetectRenderer(640, 690); //640x690 

var baseTexture = new PIXI.BaseTexture('background.png'); 

// can be loaded from cache 
if (baseTexture .hasLoaded) { 
    createSprite(baseTexture); 
} else {  
    baseTexture .on('loaded', function() { 
     createSprite(baseTexture); // or this 
    }); 
} 

function createSprite(baseTexture) { 
    var texture = new PIXI.Texture(baseTexture); 
    var spr = new PIXI.Sprite(texture); 
    this.stage.addChild(spr); 

    defaultX = texture.width; 
    defaultY = texture.height; 

    this.renderer.resize(defaultX,defaultY); 
} 
+0

感謝您的答覆,但它不工作。我只得到一個綠色的矩形,默認大小的大小。你能說一下你的第一句話嗎? – Mike

+0

我在pixi2中有圖像加載問題,所以我開始在pixi中使用它們之前加載圖像。這樣的代碼爲我工作,但後來我開始使用瀏覽器onload事件的形象,如: –

+0

var src ='background.png'; var img = new Image() img.onload = function(){ PIXI.utils.BaseTextureCache [src] = new PIXI.BaseTexture(this); } image.src = src; 所以加載後,你可以從緩存中獲得基礎紋理 var baseTexture = PIXI.utils.BaseTextureCache ['background.png'] –