0
我有一個簡單的設置工具,用戶可以添加標記點來撰寫關於圖像的註釋。動態JQuery對象 - 獲取畫布中每個元素的X/Y
我已經使用Kinetic庫設置畫布對象 - 這是放置在包含動態圖像的div上 - 用戶可以將標記拖動到位置。當他們完成添加標記時,我需要掃描畫布並將每個元素的x和y位置寫入一個數組或多個變量中 - 這將用於創建便箋PDF服務器端。
我已經得到儘可能創建畫布對象和拖動功能工作正常 - 但我不知道如何掃描畫布完成和循環通過每個'latestElement'element返回X/Y值 - 沒有人有什麼想法?
我的代碼如下 -
var stage = new Kinetic.Stage({
container: 'container',
width: 455,
height: 500
});
var layer = new Kinetic.Layer();
var rectX = stage.getWidth()/2 - 50;
var rectY = stage.getHeight()/2 - 25;
var box = new Kinetic.Circle({
x: stage.getWidth()/2,
y: stage.getHeight()/2,
radius: 5,
fill: 'red',
stroke: 'black',
strokeWidth: 4,
draggable:true
});
// add cursor styling
box.on('dragend', function() {
var curposX = box.getAbsolutePosition().x;
var curposY = box.getAbsolutePosition().y;
alert(curposX );
alert(curposY)
})
box.on('mouseover', function() {
document.body.style.cursor = 'pointer';
});
box.on('mouseout', function() {
document.body.style.cursor = 'default';
});
var curpos = box.getAbsolutePosition().x;
alert(curpos);
layer.add(box);
stage.add(layer);
var countCirc;
function addBox(){
alert('here')
var latestElement = new Kinetic.Circle({
x: stage.getWidth()/2,
y: stage.getHeight()/2,
radius: 10,
fill: 'red',
stroke: 'black',
strokeWidth: 4,
draggable:true,
})
latestElement.on('dragend', function() {
var curposX = (this).getAbsolutePosition().x;
var curposY = (this).getAbsolutePosition().y;
alert(curposX );
alert(curposY)
})
layer.add(latestElement);
latestElement.simulate('mousedown');
layer.draw();
}
歡呼的幫助#markE作品一種享受... – Dancer 2013-03-22 15:59:24
將這個順序在數組元素它們被放置在屏幕上的順序 - 或者它們被掃描的順序 - 僅僅因爲我需要將每個標記與其相關的註釋匹配。 – Dancer 2013-03-22 16:02:01
它們與添加到圖層中的順序相同。讓我回想起我作爲一名公共會計師的過去職業生涯,並讓我將這個順序描述爲FIFO - firstIn = firstOut :) – markE 2013-03-22 16:15:30