小さな地図のようなイメージがあります。次のようなことをしたい1. http://www.html5canvastutorials.com/kineticjs/html5-canvas-drag-and-drop-an-image-tutorial/
のようにドラッグします
2. オブジェクトを描画します (例: 線、ポイント)画像上(画像のドラッグ中に画像に添付されたオブジェクト)
http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-label-tutorial/などを使用するなどのことを試みます。しかし、画像をドラッグしても画像が添付されません。
質問する
617 次
2 に答える
0
KineticJS の例を見ているようです。
以下は、KineticJS でマップに加えてポイントとラインを作成する方法の例です。キャンバス内でのドラッグの複雑さだけを学ぶよりも、このライブラリを使用する方が簡単に使い始めることができます。
このコード例では、img1.src="yourMap.jpg" の代わりに URL をマップに配置してください。
<!DOCTYPE HTML>
<html>
<head>
<style>
body {margin: 0px;padding: 0px;}
canvas{border:1px solid red;}
</style>
</head>
<body>
<div id="container"></div>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.4.0.min.js"></script>
<script>
var stage = new Kinetic.Stage({
container: 'container',
width: 500,
height: 500
});
var layer = new Kinetic.Layer();
var img1=new Image();
img1.onload=function(){
createDragMap();
}
img1.src="yourMap.jpg";
function createDragMap(){
var map = new Kinetic.Shape({
drawFunc: function(canvas) {
var context = canvas.getContext();
// draw the map and a border around the map
context.drawImage(img1,0,0);
context.beginPath();
context.rect(0,0,img1.width,img1.height);
context.stroke(this);
// add your points to the map here
// for example...
context.rect(23,67, 4,4);
context.rect(153,87, 4,4);
context.moveTo(23,67);
context.lineTo(153,87);
// fill and stroke must be done last!
canvas.fillStroke(this);
},
width: img1.width,
height: img1.height,
stroke:"blue",
strokeWidth: 2,
draggable:true
});
layer.add(map);
stage.add(layer);
}
</script>
</body>
</html>
于 2013-04-01T17:20:06.413 に答える