JavaScript函数在我第一次调用它时才起作用?

JavaScript函数在我第一次调用它时才起作用?,javascript,Javascript,我想知道你们能否帮我解决一个问题。希望识别问题不需要查看我正在使用的图形包的文档,但如果查看了,请看: 我有以下代码块 window.setInterval(function() { mycirc.transform("t1,1"); }, 500); 这当然应该每半秒调用函数mycirc.transform(“t1,1”)。该函数应该将mycirc的x和y坐标分别平移1个单位(查看上的Element.transform([tstr]) 然而,当我测试我的页面时,mycirc被翻译一次

我想知道你们能否帮我解决一个问题。希望识别问题不需要查看我正在使用的图形包的文档,但如果查看了,请看:

我有以下代码块

window.setInterval(function()
{
    mycirc.transform("t1,1");
}, 500);
这当然应该每半秒调用函数
mycirc.transform(“t1,1”)
。该函数应该将
mycirc
的x和y坐标分别平移1个单位(查看上的Element.transform([tstr])

然而,当我测试我的页面时,
mycirc
被翻译一次,随后的调用没有效果。我使用
console.log(…)
测试并确保:

window.setInterval(function()
{
    var bb = mycirc.getBBox();
    console.log("coords before transformation: " + bb.x + "," + bb.y);
    mycirc.transform("t1,1");
    var bb = mycirc.getBBox();
    console.log("coords after transformation: " + bb.x + "," + bb.y);

}, 500);
屈服

coords before transformation: 120.98508107696858,106 jsfunctions.js:411
coords after transformation: 121.98508107696858,107 jsfunctions.js:414
coords before transformation: 121.98508107696858,107 jsfunctions.js:411
coords after transformation: 121.98508107696858,107 jsfunctions.js:411
等等

知道为什么会这样吗

(我试图查看图形包的源代码,但由于没有空格,无法阅读。)

您的代码

mycirc.transform("t1,1");
与当前状态无关。它只是从原始状态转换到
t1,1
,然后从
t1,1
转换到
t1,1
等等

每次都应该计算变换

编辑:因此它需要一个全局变量,每次递增,如:

var xyPos = 1;
window.setInterval(function()
{
    mycirc.transform("t"+xyPos+","+xyPos);
    xyPos++;
}, 500);

在链接的文档的“使用”部分中,它显示了如何预处理和附加转换。对我来说,这意味着您的代码每次都会将转换重置为相同的内容。我从未使用过这个图形库,所以我不能肯定,但请尝试以下方法,看看它是否有效:

mycirc.transform("t1,1");
mycirc.transform("...t1,1");
mycirc.transform("...t1,1");
mycirc.transform("...t1,1");

我相信这将应用相同的转换4次。当然,您需要将此逻辑转换为一个间隔以供使用。

我认为这是预期的行为。引用文件:

将转换添加到与其他元素分离的元素 属性,即平移不会更改矩形的x或y

尝试:

var amount = 1;
window.setInterval(function()
{
    mycirc.transform("t" + [amount, amount].join(','));
    amount++;
}, 500);