我遇到了一个简单的问题(我刚开始使用 lib):
创建对象集、复制对象和转换对象的最有效方法是什么?
围绕中心点创建一堆圆圈:
var height = 150,
width = 150,
branchRadius = 20,
centerX = width / 2,
centerY = height / 2,
treeCrownCenterOffset = 10,
treeCrownRotationCenterX = centerX,
treeCrownRotationCenterY = centerY - treeCrownCenterOffset,
rotationCenter = [treeCrownRotationCenterX , treeCrownRotationCenterY],
paper = Raphael('logo', height , width ),
outerCircle = paper.circle(treeCrownRotationCenterX, treeCrownRotationCenterY, branchRadius).attr({fill:'#F00'}),
innerCircle = paper.circle(treeCrownRotationCenterX, treeCrownRotationCenterY, branchRadius - 4).attr({fill:'#000'}),
branch = paper.set([outerCircle, innerCircle]),
crown = paper.set(),
numCircles = 8, rotationStep = 360 / numCircles, i = 0;
for(; i < numCircles - 1 ; i++) {
//Cloning a branch and pushing it to the crown after transforming it
crown.push(branch.clone().transform('r' + ((i + 1) * rotationStep) + ',' + rotationCenter));
}
//Putting a second crown 200px right of the first crown
//Yes, I'm building a tree :-) No trunk at this point
crown.clone().transform('t200,0');
如果你喜欢小提琴,这里是小提琴。
这是我的幼稚代码,认为一组克隆集(克隆分支的冠部)确实会移动到第一个冠部旁边的位置 (200, 0)。
它不起作用:看起来无法移动克隆的一组克隆元素:
crown.clone().transform('t200,0');
执行此行时不会发生太多事情。
似乎“克隆”没有按照我的预期进行,并且转换不会被带到第二个(克隆的)对象集合中。
基本问题是:
如何使用 Raphael 创建可重用的对象?
谢谢。