我有完全相同的問題,事實上Guilherme的方法工作得很好。
但是有一個簡單的選擇:建立一個透明的Rect(動力學矩形)的大小相同的帆布:
<script type='text/javascript'>//<![CDATA[
window.onload=function(){
function writeMessage(messageLayer, message) {
var context = messageLayer.getContext();
messageLayer.clear();
context.font = '18pt Calibri';
context.fillStyle = 'black';
context.fillText(message, 10, 25);
}
var stage = new Kinetic.Stage({
container: 'container',
width: 578,
height: 200
});
var shapesLayer = new Kinetic.Layer();
var messageLayer = new Kinetic.Layer();
var rect = new Kinetic.Rect({
x:0,
y:0,
width:stage.getWidth(),
height:stage.getHeight(),
stroke:0
});
rect.on('mousemove', function() {
var mousePos = stage.getMousePosition();
var x = mousePos.x;
var y = mousePos.y;
writeMessage(messageLayer, 'x: ' + x + ', y: ' + y);
});
stage.getContainer().addEventListener('mouseout', function(evt) {
writeMessage(messageLayer, '');
});
shapesLayer.add(rect);
stage.add(shapesLayer);
stage.add(messageLayer);
}//]]>
</script>
當您懸停它超過上面的代碼將打印鼠標的x和y位置畫布(帶有「容器」ID的div)。在使用此代碼之前,您當然需要加載KineticJS庫。
getContent()方法不存在。我使用'getContainer()'來獲取實際的畫布,然後使用'addEventLister'。 +1幫助理解這一部分。 –
是的,他們改變了API –