0

我有 50 个名为 animation0、animation1、animation2 等的 svg 动画,我想在将整数 0 到 49 传递给此函数时加载它们:

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

目前它不起作用,也许它正在传递“whichswiffy”而不是animation10?

有任何想法吗?

4

2 回答 2

5

“我有 50 个名为 animation0、animation1、animation2 等的 svg 动画。”

使用全局变量

我认为这意味着你有变量。如果它们是全局变量,您可以将它们作为全局对象的属性来访问。

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 回答