간단한 전략 게임을 만들기 위해 KineticJS를 사용하려고합니다. 하나의 키네틱이 있습니다. 전체 화면에 맞게 스테이지가 리사이즈됩니다. 그 단계에서 나는 일반적으로 3 개의 렌더링 레이어를 가질 예정입니다. 대부분의 HUD 레이어는 게임 통계를 보여 주며 분명히 드래그 할 수 없습니다. 아래의 한 레이어는 "액션 레이어"로 모든 액션이 표시되는 게임 맵입니다. 아래쪽에는 정적 배경 레이어가 있으며,이 예제에서는 재미없는 배경 화면을 보여줍니다. 지도를 스크롤하기 위해 액션 레이어를 드래그 할 수있게하려고합니다. 문제는이 방법으로 작동하지 않는 것 같아서 액션 레이어를 드래그 할 수 없다는 것입니다. 나는 뭔가를 놓치고 있어야합니다.KineticJS의 드래그 가능 및 정적 레이어 구성
나는 여기에 바이올린에 문제를 재현 : 내가 발견 액션 층의 루트에 모양을 추가하는 레이어의 드래그 허용하는 한
또한http://jsfiddle.net/shadowfire/2v9xS/22/
-하지만 당신의 경우 그 모양을 드래그하면 큰 효과가없는 것 같습니다.
대응 코드 :
var stage = new Kinetic.Stage({
container: 'myCanvas',
width: 400,
height: 400,
draggable: false,
listening: true
});
var backgroundLayer = new Kinetic.Layer({draggable: false});
var actionLayer = new Kinetic.Layer({draggable: true, listening: true});
var mapLayer = new Kinetic.Layer({draggable: true});
var foregroundLayer = new Kinetic.Layer({draggable: true, clearBeforeDraw: false});
var hudLayer = new Kinetic.Layer({draggable: false});
backgroundLayer.add(new Kinetic.Rect(
{
x:0,
y:0,
width: 400,
height: 400,
fill: 'grey'
}
));
mapLayer.add(new Kinetic.Rect(
{
x:100,
y:100,
width: 200,
height: 200,
fill: 'orange',
stroke: 'black',
draggable: true
}
));
foregroundLayer.add(new Kinetic.Circle(
{
x:200,
y:200,
radius: 30,
fill: 'yellow',
stroke: 'black',
draggable: true
}
));
actionLayer.add(mapLayer);
actionLayer.add(foregroundLayer);
actionLayer.add(new Kinetic.Text({text:"ActionLayer - draggable works only here", fill:'green', x:100, y:100}));
hudLayer.add(new Kinetic.Text(
{
fontSize: 30,
text: 'STATUS',
fill: 'green'
}
));
stage.add(backgroundLayer);
stage.add(actionLayer);
stage.add(hudLayer);
레이어 구성에서 해당 레이어를 지적하는 답변으로 표시되어이 문제가 발생합니다. 듣기를 설정하여 오해의 소지가 있습니다. 바이올린의 무대에서는 false입니다. jsfiddle 버전 관리에 익숙하지 않았고 다른 버전에 대한 링크를 게시했습니다. 위의 메시지에서 복사 한 코드와도 다릅니다. – Omnibus