0
我想了解集如何與變換工作。基本上,我想要一個帶有所有孩子的「容器」,讓我可以在畫布上移動。raphaeljs移動一個'容器'集
我創建了一個小提琴來展示我的意思,這是一個更大的繪圖的簡化。 http://jsfiddle.net/thibs/Hsvpf/
我創建了3個正方形,紅色,黑色,藍色。每個都添加到一個集合中,然後將它們添加到主容器(集合)中。我添加了輪廓以顯示畫布和設置。
紅色和黑色套裝沒有變形,但藍色。藍色仍保留在「容器」集合中,直到容器得到變換。
這是爲什麼?我認爲轉換已經應用於該集合的所有chidlren ...?
預先感謝
這裏是小提琴代碼:
var paper = Raphael('holder');
var container = paper.set();
paper.rect(0, 0, '100%', '100%').attr({
stroke : 'red'
});
var rectRedSet = paper.set();
var rectRed = paper.rect(100, 10, 20, 20).attr({
'fill' : 'red',
'stroke-opacity' : 0
});
rectRedSet.push(rectRed);
container.push(rectRedSet);
var rectBlackSet = paper.set();
var rectBlack = paper.rect(150, 10, 20, 20).attr({
'fill' : 'black',
'stroke-opacity' : 0
});
rectBlackSet.push(rectBlack);
container.push(rectBlackSet);
var rectBlueSet = paper.set();
rectBlue = paper.rect(0, 0, 20, 20).attr({
'fill' : 'blue',
'stroke-opacity' : 0
});
rectBlueSet.push(rectBlue);
rectBlueSet.transform('t50,150');
container.push(rectBlueSet);
var containerBBox = container.getBBox();
paper.rect(containerBBox.x, containerBBox.y, containerBBox.width, containerBBox.height).attr({
stroke : 'black'
});
//trying to get the entire container and its children to move to 0,0
//commenting out the transform below will keep rectBlue in the container...?
container.transform('t0,0');
OMG,什麼與所有不必要的嵌套'SET's。你讓我哭了。你究竟想達到什麼目的? **告訴我你想要做什麼用你的長方形?** – Brian
大聲笑不要哭,不值得... 我有一個更大的繪圖,小提琴是它的簡化版本。 Short: 我試圖將所有元素/集合作爲「組」,因此我可以將「組」放在需要去的位置。順便說一句:container.translate(x,y)而不是轉換做我需要的,但不推薦使用。 長卷: 較大的圖紙是一系列動態生成的元素。這些元素需要進行設置,因爲它們是文本在其上/內的元素。我也使用集合來添加事件。也就是說,一套是轉換。當這個集合被轉換時,它不隨容器移動 – Thibs
我不認爲轉換會傳播到嵌套集合。 – Neil