Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拉法ë;l、 js animation resume()在集合中失败_Javascript_Html_Animation_Raphael_Resume - Fatal编程技术网

Javascript 拉法ë;l、 js animation resume()在集合中失败

Javascript 拉法ë;l、 js animation resume()在集合中失败,javascript,html,animation,raphael,resume,Javascript,Html,Animation,Raphael,Resume,我有一段代码() var纸张=新拉斐尔('holder',400,100); var set=paper.set(); 对于(变量i=0;i

我有一段代码()

var纸张=新拉斐尔('holder',400,100);
var set=paper.set();
对于(变量i=0;i<10;i++){
变量圆=纸张圆((i*30)+30,20,5);
circle.attr({fill:'#ff0'});
动画(拉斐尔动画({transform:'s2,2'},2000)。重复('Infinity');
推(圆);
}
set.hover(函数(){
set.pause();
},函数(){

set.resume();//在Safari/Firefox上,悬停一段时间后,我收到了此错误消息(使用未压缩的源代码):

设置
totalOrigin
的唯一位置是
runAnimation
功能:

line 3072: function runAnimation(anim, element, percent, status, totalOrigin, times) {
您的代码首先调用
elproto.pause()
(第3352行),然后调用
elproto.resume()
(第3361行)。
pause()
pause
属性设置为true,
resume()
删除此属性。但是
resume
也会调用
状态()
方法在删除
暂停
标志后立即执行:

var e = animationElements[i];
if (eve("raphael.anim.resume." + this.id, this, e.anim) !== false) {
    delete e.paused;
    this.status(e.anim, e.status);
}
奇怪的、正在工作的
elproto.status
方法(第3323行)仅由
elproto.setTime()
elproto.resume()
调用。此函数构造一些复杂的返回值,但没有活动代码使用其返回值,只有从第2980行开始的注释掉的行

此函数还调用
runAnimation
函数,如果它有
参数:

 runAnimation(anim, this, -1, mmin(value, 1)     );
          totalOrigin should be passed here! ^^^
不幸的是,它没有为
totalOrigin
传递任何信息,这就是导致该错误的原因

我尝试根据第3312行添加一个
totalOrigin
参数:

 runAnimation(anim, this, -1, mmin(value, 1), this.attr());
虽然它似乎起作用,但它却有问题

作为第二次尝试,我注释掉了整行内容:

 // runAnimation(anim, this, -1, mmin(value, 1));
结果:它可以工作,但计时错误,可能动画开始时间应该在某个地方更新


https://raw.github.com/gist/3067995/1e82de48eeacf98697b572efdc74c11a9b1d9d03/gistfile1.js

elproto.status
方法中,您需要替换(Raphael 2.1.4中的第5127-5128行)

for(var i=0;i
我链接了未压缩的Räphël.js进行调试:悬停后,它恢复播放,但在raphael.js再次循环之前死亡。js:line#2946 with
e.totalOrigin未定义
很棒;非常好的分析!非常感谢!这是一个很好的开始,如果我不能让它工作,我将提交一份错误报告。Exac泰利,这就是为什么它需要进一步的研究,请随意为赏金做调查:)
 runAnimation(anim, this, -1, mmin(value, 1), this.attr());
 // runAnimation(anim, this, -1, mmin(value, 1));
runAnimation(anim, this, -1, mmin(value, 1));
return this;
for (var i = 0; i < animationElements.length; i++) if (animationElements[i].el.id == this.id && (!anim || animationElements[i].anim == anim)) {
    e = animationElements[i];
    runAnimation(anim, this, -1, mmin(value, 1), e.totalOrigin, e.repeat);
    return this;
}