2013-02-11 2 views
0

여기에 약간의 문제가 있지만 KineticJS 변경 로그에 다음과 같은 변경 사항이 있기 때문에 버그인지 새로운 기능인지는 알 수 없습니다.모양을 클릭하면 moveToTop()이 자동으로 호출됩니다.

"끌어서 놓기 작업이 이제 자동으로 임시 최상위 레이어를 자동으로 만들고 그룹 및 도형에 대한 노드를 배치하여 드래그 앤 드롭 성능을 크게 향상시킵니다 ..."

버전 4.0.0을 사용하려면 테스트 프로젝트와 나는 explicity moveToTop()을 사용해야한다. 어떤 모양을 맨 위로 옮기고 싶을 때 (나는 이것이 올바른 방법이라고 생각한다). Now (version 4.3.2)를 클릭하면 사진이 자동으로 상단으로 이동합니다. 이 임시 계층은 내부적 인 것이어야하며 시각적 인 것이어야합니다. 이것은 정말로 버그이거나이 문제를 해결할 수있는 방법이 있습니다.

실험실이 바뀌 었다고해도 MoveUp, moveToTop 등의 함수를 호출하지 않으면 객체가 공간 순서를 유지한다고 생각하기 전에 생각합니다. 예를 들어 다음 링크에서는 moveToTop() 함수 호출이 없습니다.이 방법을 클릭해도 모양을 클릭하면 맨 위로 이동합니다. 관심

답변

0

나는 완전히 레이어를 해제 할 수 있다고 생각하지 말아 동안

http://www.html5canvastutorials.com/kineticjs/html5-canvas-move-shape-to-another-container-with-kineticjs/

감사합니다, 당신은 그것으로 모양을 이동 해제 할 수 있습니다. 당신과 같은 몇 가지 형태를 가지고 말 :

당신은 드래그의 임시 레이어에 모양을 이동하지 않으려면이 하나 개의 매개 변수를 추가 할 필요가
var shape1 = new Kinetic.Rect({ 
     x: 100, 
     y: 100, 
     width: 100, 
     height: 100, 
     fill: 'blue', 
     draggable: true 
    }); 

: 'dragOnTop'거짓 필요가있다, 그래서처럼 모양의 무언가를 만들 :

var shape1 = new Kinetic.Rect({ 
     x: 100, 
     y: 100, 
     width: 100, 
     height: 100, 
     fill: 'blue', 
     draggable: true, 
     dragOnTop: false //<-- add this line so that this shape doesn't use the drag layer. 
    }); 
+0

감사합니다.이 솔루션은 잘 작동합니다. 그러나 이것은 새로운 프레임 워크의 행동인가, 아니면 버그입니까? 당신이 나를 가르쳐 준 속성 이름으로 검색 (dragOnTop) github에서이 문제에 관한 문제점을 발견했습니다. https://github.com/ericdrowell/KineticJS/issues/251 – wfaria

+0

좋은 질문입니다. 나는 그것이 단지 행동이라고 믿는다. 아이템을 클릭 (드래그)하면 새로운 레이어가 생성되고 이전 레이어의 위치를 ​​기억하지 않고 레이어에 배치됩니다. 따라서 click을 놓으면 on ('click') 이벤트가 있던 원래 위치를 기억하도록 특별히 지정하지 않는 한 원래 레이어의 맨 위에 항목을 배치합니다. – SoluableNonagon

+0

이것은 화면에 방대한 양의 항목이있을 때 코드를 최적화 한 결과입니다. 실험실에서와 마찬가지로 수천 개의 노드가있는 경우 임시 레이어의 모든 노드를 이전 레이어의 모든 노드보다 더 효율적으로 다시 그릴 수 있습니다. – SoluableNonagon

관련 문제