关于flash的AS中setInterval函数的问题

来源:百度知道 编辑:UC知道 时间:2024/07/06 18:55:54
我想用flash的AS做这样一个效果:
1,生成一组数据,表示某个元件的运动轨迹坐标(比如正弦曲线等)。
2,使用setInterval函数做一个定时,比如每隔100ms改变一次元件的坐标。
这样就可以使元件比较连续的动起来,现在的问题是这样的:
1,在一段轨迹上面我设置了20个坐标,当定时比较长(如1000ms)时,可以看到元件动了20下;但当定时到100ms或者50ms时,就出现了跳帧的问题,即这20个位置里面有一些没有显示出来,大概只显示了不到10个位置,这就导致运动轨迹看起来很不连贯。
2,比较诡异的是,当我在flash(软件flash,不是做出来的swf)里面进行调试的时候,一开始会跳帧,但不要关闭那个运行窗口,再点一次播放就可以流畅的播放了;另外发布到网页的时候,在网页里面也是一开始播放时跳帧,不刷新,直接在flash(嵌入网页的.swf文件)上面点击右键选择播放的时候,反而跳的更厉害。

被AS搞晕了,期待AS达人出面赐教~

as2.0的帮助里是这样写的:

如果被调用的函数启动对可视元素的更改,您应使用 updateAfterEvent() 函数来确保屏幕刷新率足够高。
说的简单易懂一点,就是updateAfterEvernt()动作指示Flash刷新显示器而不管帧速率。

updateAfterEvent() 这个函数我在实际当中并没有用过,大概的用法是这样的,你可以试一下有没有用:

function callTest() {
mc1._x+=1;
updateAfterEvent();
}

var intervalTest = setInterval(callTest, 10);

问题还真长,给你一个建议,提问题别提太长。会把看问题者搞晕。