0

这将是每个人都喜欢“给我们看一些代码”而我必须说“抱歉,相关代码大约有 300 行长”。所以我会尽可能详细地提供。提出问题,提出疯狂的想法,在这一点上,即使是正确方向的提示也会为我节省一些头发。

我正在使用 Raphaeljs 创建一些弧段。没什么大不了的,效果很好!我在一个for循环中一次创建几个,并将它们分配一个“参考角度”(除其他外)作为“数据”,以便我知道稍后在其他函数中用于计算它们的角度。

非常缩短的版本:

//pieces being the number of arcs I'm creating
for (var i = 0; i < pieces; ++i){
    var refAngle = foo + bar;
    var my_arc = paper.path().attr({
        arc: [foo, bar, etc]
    });
    my_arc.node.cmdata = params[0][i];
    my_arc.node.cmdata[4] = refAngle;
    //when checked here, my_arc.node.cmdata[4] === refAngle and is the value I am looking for
}

Params是用于绘制弧线的多级静态数据数组。需要修改 refAngle,因为如果要在屏幕外渲染,弧会被移动,并且可能不再满足该params值。

我可以 100% 确认正在计算正确的角度。我可以 100% 确认存储了正确的角度。我可以 100% 确认存储后立即可以正确检索。但是,以一致的方式(如果我执行相同的操作,我会得到相同的结果),在一个或多个后面的循环中,一些先前创建的弧正在my_arc.node.cmdata[4]发生变化 - 我发现这个记录了所有创建的弧my_arc.node.cmdata[4]循环上的每次迭代中的属性for

这……没有任何意义。我不知道是拉斐尔在做某事(不应该)还是我正在失去理智(可能是手提包),但这些数据不应该改变。这是我正在处理的测试页面,因此没有任何其他可能干扰它的函数被调用。

谢谢!

4

0 回答 0