1

processingjsキャンバス要素のプリローダーをどのように実装しますか?

2 つのケース - アセットはロードされていますが、js はまだビューを計算/レンダリングしています。アセットがロードされていません

PS 誰かが processingjs タグを作成してください! 担当者 lt 1500 のユーザーはまだそれを行うことができません :(

4

1 に答える 1

0

この非常に古いスニペットが役立つ場合があります。すべての画像をロードした後、コールバックが呼び出されます。低解像度または高解像度の写真をロードするために、フォルダー パラメータが使用されました。

pics = {
  'Trans100'    : "trans100.png",
  'Trans101'    : "trans101.png",
  'TransPanel'  : "transPanel.png"
}

function oAttrs(o) { var a, out = ""; for (a in o){ out += a + " ";} return trim(out);}

function imageLoader(pics, folder, onready){
  this.nextPic  = 0;
  this.pics     = pics;
  this.folder   = folder;
  this.names    = oAttrs(pics).split(" ");
  this.onReady  = onready;
  this.loadNext();
}

  imageLoader.prototype.loadNext = function (){
    if (this.nextPic === this.names.length) {
      this.onReady();
    } else {
      this.loadImage(this.pics[this.names[this.nextPic]]);
    }
  };

  imageLoader.prototype.loadImage = function (file){
    this.nextPic += 1;
    var pic       = new Image();
    pic.onload    = this.loadNext.bind(this);
    pic.onerror   = function(){console.error("ERROR: " + file);};
    pic.src       = this.folder + file;
  };


// example: 

new imageLoader(pics, "images", function(){
  console.log("Images loaded");
})
于 2010-11-24T21:49:12.213 に答える