こんにちは Stackoverflow コミュニティ
小さなゲームを作ろうとしているときに、問題が発生しました。どういうわけか、複数の図形をフェードアウトしようとすると、それぞれ図形を含むグループがフェードアウトしないか、ブラウザがスタックオーバーフローを取得します。
問題を解決するために数時間試したので、あなたの助けが必要です。
私が作った小さなフィドルへのリンクはこちらです:http://jsfiddle.net/hnBPT/
ご覧のとおり、フェードアウトするノードとノードのレイヤーを必要とする関数 newFadeShapesOut() があります。ノードをグループに移動し、グループをフェードアウトします。どういうわけか、1 つまたは複数のシェイプがフェードアウトしないか、致命的なエラーが発生することがあります。
フェードアウト機能:
function newFadeShapesOut(shapes, layer, callback, speed){
if(typeof(speed) == 'undefined'){
speed = 1;
}
var g = new Kinetic.Group();
console.log(layer.getChildren().length);
console.log(shapes.length);
layer.add(g);
shapes.each(function(shape){
shape.moveTo(g);
});
console.log(layer.getChildren().length);
console.log(shapes.length);
var tween = new Kinetic.Tween({
node: g,
opacity: 0,
duration: speed,
onFinish: function(){
if(typeof(callback) != 'undefined'){
callback();
tween.destroy();
}
}
}).play();
}
PS: Google Chrome をお勧めします。Firefox はクラッシュする傾向があります。
ご協力ありがとうございました。
編集: 申し訳ありませんが、忘れてしまいました。赤い四角をクリックしてスクリプトを有効にできます。