キャンバス上にx個の蝶を生成するスクリプトがあります。適度にプリミティブな関数コンストラクターを使用しているため、各蝶は他の蝶に影響を与えることなく変更できますが、シーケンスの1つを更新するとすべてが更新され、表示されませんなぜ。
コードの量が非常に多い (350 行以上) ため、表示するJS フィドルを作成しました (そしておそらく眉をひそめます)。
ここですべてを完全に表示できます。
しかし、JSFiddle へのリンクだけを投稿することはできないため、ここにシーケンス関数自体のコードを示します。
function Sequence (s, f) {
// Check we have arguments
if (!s || !f) {
throw new TypeError('No sequences to load');
}
// Instance for the onload event
var _sq = this;
// Some public properties
this.w = 0;
this.r = false;
this.st = 0;
this.ns = 22;
// This is the step in the sequence we're at
this.s = 20;
// The step width
this.sw = 0;
// Create the image
this._s = new Image;
this._f = new Image;
// Load listener
this._s.onload = function () {
// Set our publics
_sq.w = this.width;
_sq.sw = _sq.w / fps;
};
this._s.src = s;
this._f.src = f;
// Return
return this;
};
[編集] 基本的に負荷を気にしないようにシーケンス クラスを更新しました。
<link rel="prefetch" href="image.png" />
また、JSFiddle を更新して動作を確認できるようにしました (他にもいくつかの更新があります) が、コードが少し扱いにくいため、ここでは説明しません。