KineticJS는 실제로 2 개의 HTML 캔버스를 생성합니다.
하나의 캔버스가 히트 테스트에 사용됩니다 (내부 용).
하나의 캔버스가 장면을 그리는 데 사용됩니다 (원하는 장면).
장면 캔버스에 대한 참조를 가져와 ID를 설정하려면, 당신은이 작업을 수행 할 수 있습니다
var htmlCanvas = myLayer.getContext()._context.canvas;
htmlCanvas.id="gotcha";
console.log(htmlCanvas);
:
다음 예제 코드와 바이올린이야 [추가 데모] http://jsfiddle.net/m1erickson/LmCgw/
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Prototype</title>
<script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.7.2.min.js"></script>
<style>
body{padding:20px;}
#container{
border:solid 1px #ccc;
margin-top: 10px;
width:350px;
height:350px;
}
</style>
<script>
$(function(){
var stage = new Kinetic.Stage({
container: 'container',
width: 350,
height: 350
});
var myLayer = new Kinetic.Layer();
stage.add(myLayer);
// get the Scene (html canvas) from KineticJS myLayer
var htmlCanvas=myLayer.getContext()._context.canvas;
// assign an id to that html canvas
htmlCanvas.id="gotcha";
// get a reference to the html canvas with id of "gotcha"
var canvas=document.getElementById("gotcha");
var context=canvas.getContext("2d");
// draw something on the regular html canvas (outside KineticJS)
context.beginPath();
context.arc(100,100,20,0,Math.PI*2);
context.closePath();
context.fillStyle="skyblue";
context.strokeStyle="gray";
context.lineWidth=3;
context.fill();
context.stroke();
}); // end $(function(){});
</script>
</head>
<body>
<div id="container"></div>
</body>
</html>
답장을 보내 주셔서 감사합니다. '레이어가 정의되지 않았습니다'오류가 발생합니다. 내 레이어의 이름, 아이디어가 무엇입니까? 다시 한 번 감사드립니다 –
예를 들어 당신을 보았습니다. :) – markE
이 마크는 시간 내 주셔서 감사합니다.하지만 제 생각에는 그것을 작동시킬 수없는 것처럼 보입니다. 그것에서, 어딘가 바보 같아. 다시 한 번 감사드립니다 http://jsfiddle.net/FT26S/ –