Pixi.js: рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХрдм рд╡реИрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 30 рдорд╛рд░реНрдЪ 2013  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

рдЬрдм рдореИрдВ рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдлрд┐рд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ 1 рдХрд╛ рдорд╛рди рдорд┐рд▓рддрд╛ рд╣реИред рдПрдиреАрдореЗрд╢рди рд▓реВрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рдмрд╛рд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЪреМрдбрд╝рд╛рдИ рд╡реИрдз рд╣реЛ рдЬрд╛рддреА рд╣реИред рдХреНрдпрд╛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдмрдирд╛рд╡рдЯ рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рд╣реИ?

  var stage = new PIXI.Stage(0x66FF99);
  var renderer = new PIXI.CanvasRenderer(800, 600);
  document.body.appendChild(renderer.view);
  var texture = PIXI.Texture.fromImage("stone.png");
  var stone = new PIXI.Sprite(texture);
  console.log(stone.width + ', ' + stone.height);
  stage.addChild(stone);
  console.log(stone.width + ', ' + stone.height);
  requestAnimFrame( animate );
  console.log(stone.width + ', ' + stone.height);
  renderer.render(stage);
  console.log(stone.width + ', ' + stone.height);

рдЙрди рд╕рднреА console.log() s рд▓реЙрдЧ "1, 1" рднрд▓реЗ рд╣реА рдпрд╣ 128, 128 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореИрдВ рдЙрд╕ console.log() рдХреЛ рдПрдиреАрдореЗрд╢рди рд▓реВрдк рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ 128, 128 рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрд╣ рд╣рд╛рдБ! рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреНрдпрд╛ рд╣реИ: /
рдпрд╣ рдЙрд╕ рдЕрд░реНрде рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рдпрдорд┐рдд HTML рдЫрд╡рд┐ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдореЗрд░реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░реАрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕реЗрдЯрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдЬрдм рдореИрдВ рдЕрдкрдиреА рдмрдирд╛рд╡рдЯ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рддрд╛ рд╣реВрдВ рддреЛ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рд╣реЛрддреА рд╣реИ:

var assetsToLoad = [ "stone.png"];
// create a new loader
loader = new PIXI.AssetLoader(assetsToLoad);
// use callback
loader.onComplete = onAssetsLoaded
//begin load
loader.load();

function onAssetsLoaded()
{
      var texture = PIXI.Texture.fromImage("stone.png");
      var sprite  = new PIXI.Sprite(texture); 
      // this will log the correct width and height as the image was preloaded into the pixi.js cache
      console.log(stone.width + ', ' + stone.height);
}

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЯреЗрдХреНрд╕рдЪрд░ рдореЗрдВ рдПрдХ рдЗрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реЗрдВред рдЬрдм рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рдпрд╣ рдПрдХ 'рдЕрдкрдбреЗрдЯ' рдИрд╡реЗрдВрдЯ рднреЗрдЬрддреА рд╣реИред

var texture = PIXI.Texture.fromImage("stone.png");
var sprite  = new PIXI.Sprite(texture); 

if(texture.baseTexture.hasLoaded)
{
      // this will log the correct width and height as the image has already loaded
      console.log(stone.width + ', ' + stone.height);
}
else
{
      texture.addEventListener("update", onTextureUpdate)
}

function onTextureUpdate()
{
      // this will log the correct width and height as the image has loaded
      console.log(stone.width + ', ' + stone.height);
}

рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ :)

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрд╣ рд╣рд╛рдБ! рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдЫрд╡рд┐ рд▓реЛрдб рдирд╣реАрдВ рд╣реБрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреНрдпрд╛ рд╣реИ: /
рдпрд╣ рдЙрд╕ рдЕрд░реНрде рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд┐рдпрдорд┐рдд HTML рдЫрд╡рд┐ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдореЗрд░реА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд░реАрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕реЗрдЯрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдЬрдм рдореИрдВ рдЕрдкрдиреА рдмрдирд╛рд╡рдЯ рдЗрд╕ рддрд░рд╣ рдмрдирд╛рддрд╛ рд╣реВрдВ рддреЛ рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╣рдореЗрд╢рд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рд╣реЛрддреА рд╣реИ:

var assetsToLoad = [ "stone.png"];
// create a new loader
loader = new PIXI.AssetLoader(assetsToLoad);
// use callback
loader.onComplete = onAssetsLoaded
//begin load
loader.load();

function onAssetsLoaded()
{
      var texture = PIXI.Texture.fromImage("stone.png");
      var sprite  = new PIXI.Sprite(texture); 
      // this will log the correct width and height as the image was preloaded into the pixi.js cache
      console.log(stone.width + ', ' + stone.height);
}

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдЯреЗрдХреНрд╕рдЪрд░ рдореЗрдВ рдПрдХ рдЗрд╡реЗрдВрдЯрд▓рд┐рд╕реНрдЯрд░ рдЬреЛрдбрд╝реЗрдВред рдЬрдм рдЫрд╡рд┐ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИ рддреЛ рдпрд╣ рдПрдХ 'рдЕрдкрдбреЗрдЯ' рдИрд╡реЗрдВрдЯ рднреЗрдЬрддреА рд╣реИред

var texture = PIXI.Texture.fromImage("stone.png");
var sprite  = new PIXI.Sprite(texture); 

if(texture.baseTexture.hasLoaded)
{
      // this will log the correct width and height as the image has already loaded
      console.log(stone.width + ', ' + stone.height);
}
else
{
      texture.addEventListener("update", onTextureUpdate)
}

function onTextureUpdate()
{
      // this will log the correct width and height as the image has loaded
      console.log(stone.width + ', ' + stone.height);
}

рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ :)

рдРрд╕рд╛ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ: https://github.com/GoodBoyDigital/pixi.js/issues/29
рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЯреЗрдХреНрдЪрд░ рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓реЗрдВ

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

sntiagomoreno picture sntiagomoreno  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

st3v0 picture st3v0  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

madroneropaulo picture madroneropaulo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

distinctdan picture distinctdan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gigamesh picture gigamesh  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ