0

animation0、animation1、animation2 などの名前の 50 個の svg アニメーションがあり、0 から 49 までの整数がこの関数に渡されたときにそれらをロードしたいと考えています。

function loadAnimation(value){
    var whichswiffy = "animation" + value;
    var stage = new swiffy.Stage(document.getElementById('swiffycontainer'), whichswiffy);
    stage.start();
}

現時点では動作しません。おそらく、animation10 ではなく「whichswiffy」を渡していますか?

何か案は?

4

2 に答える 2

5

「animation0、animation1、animation2 などの名前の SVG アニメーションが 50 個あります。」

グローバル変数の使用

これは、変数があることを意味すると思います。グローバル変数の場合は、グローバル オブジェクトのプロパティとしてアクセスできます。

var whichswiffy = window["animation" + value];

変数の代わりにオブジェクトを使用する

しかし、それらがグローバル変数でない場合(またはグローバル変数であっても)、それらをオブジェクトに格納する方がよいでしょう...

var animations = {
    animation0: your first value,
    animation1: your second value,
    /* and so on */
}

...そして、そのオブジェクトのプロパティとしてそれらにアクセスします...

var whichswiffy = animations["animation" + value];

変数の代わりに配列を使用する

または、唯一の違いは数値であるため、配列を使用するだけです...

var animations = [
    your first value,
    your second value,
    /* and so on */
]

次に、インデックスを使用します...

var whichswiffy = animations[value];
于 2012-07-07T15:09:24.410 に答える
2

変数がグローバルである場合、次のことができます

var stage = new swiffy.Stage(document.getElementById('swiffycontainer'), window[whichswiffy]);
于 2012-07-07T15:06:53.560 に答える