0

这是我的代码:-

function myFunction1()
{
current && aus[current].animate({fill: "#fff", stroke: "#999"}, 200) && (document.getElementById(current).style.display = "");
st.animate({fill: "#ccc", stroke: "#000"}, 200);
R.safari();
document.getElementById(state).style.display = "block";
current = state;
}

function myFunction2()
{
st.animate({fill: "#fff", stroke: "#999"}, 200);
R.safari();
document.getElementById(state).style.display = "";
}

setInterval(function() {
myFunction1();
alert("MOVE"); 
myFunction2();
}, 2000);

我正在做的事情是关于时间一步一步地执行两个函数......所以,我使用了 setInterval 事件,它myFunction1()是一个显示raphaeljs代码路径的颜色和笔触外观的函数,并且myFunction2()是一个函数隐藏路径的颜色和笔触外观...

但是当像这样调用这些函数时确实可以工作......函数之间的警报可能会显示结果但不像我想要的那样,如何解决这个问题???

4

2 回答 2

2

在您的情况下,动画功能并行运行。

要让它们按顺序运行,您必须在 f1 的回调中运行 f2

尝试在以下结构示例中重写您的代码:

 st.animate({fill: "#ccc", stroke: "#000"}, 200,function(){
  myFunction2();
});
于 2012-07-02T11:55:31.513 回答
1

请试试这个:

var intervalFunctions = [ myFunction1, myFunction2 ];
var intIndex = 0;

window.setInterval(function(){
  intervalFunctions[intIndex++ % intervalFunctions.length]();
}, 2000);

或者

function1() {

      ....

  function2() //<<========== call here once function1() is executed 
}

function2() {

     ....
}

图片维多利亚和塔斯马尼亚 维多利亚

在此处输入图像描述

塔斯马尼亚

在此处输入图像描述

于 2012-07-02T11:55:41.140 回答