blockly > LineCursor

LineCursor 클래스

선 커서 클래스입니다.

서명:

export declare class LineCursor extends Marker 

확장: 마커

생성자

생성자 수정자 설명
(constructor)(workspace) LineCursor 클래스의 새 인스턴스를 생성합니다.

속성

속성 수정자 유형 설명
type 문자열
workspace

protected

readonly

WorkspaceSvg

메서드

메서드 수정자 설명
atEndOfLine() in()이 호출될 때 탐색하는 노드가 next()가 호출될 때 탐색하는 노드와 동일한 경우(즉, LineCursor가 프로그램의 '현재 줄' 끝에 있는 경우) true를 반환합니다.
getCurNode()

커서의 현재 위치를 가져옵니다.

선택한 블록에서 현재 노드를 업데이트하기 위해 일반 마커 getCurNode를 재정의합니다. 일반적으로 선택 리스너를 통해 발생하지만 GestureBlockly.common.setSelected를 호출할 때는 즉시 호출되지 않습니다. 특히 리스너는 컨텍스트 메뉴가 표시된 후에 실행됩니다.

getFirstNode() 작업공간에서 탐색 가능한 첫 번째 노드를 가져옵니다. 탐색 가능한 노드가 없으면 null을 가져옵니다.
getLastNode() 작업 공간에서 탐색 가능한 마지막 노드를 가져옵니다. 없으면 null을 가져옵니다.
getNextNode(node, isValid, loop) AST에서 다음 노드를 가져옵니다. 선택적으로 루프백을 허용합니다.
getPreviousNode(node, isValid, loop) AST에서 이전 노드를 가져옵니다. 선택적으로 루프백을 허용합니다.
in() 커서를 사전 순회에서 다음 입력 연결 또는 필드로 이동합니다.
next() 커서를 선주문 순회에서 다음 블록 또는 워크스페이스 댓글로 이동합니다.
out() 커서를 사전 순회에서 이전 입력 연결 또는 필드로 이동합니다.
postDelete() 블록 삭제 후 이 potentialNodes에서 유효한 첫 번째 위치로 커서를 이동합니다.
preDelete(deletedBlock)

커서를 이동할 수 있는 노드 목록을 만들어 블록 삭제를 준비하고 이를 this.potentialNodes에 저장합니다.

삭제가 발생한 후 postDelete를 호출하여 해당 목록의 첫 번째 유효한 노드로 이동합니다.

시도할 위치 (선호도 순서)는 다음과 같습니다.

- 현재 위치 - 삭제된 블록이 연결된 연결 - 삭제된 블록의 다음 연결에 연결된 블록 - 삭제된 블록의 상위 블록입니다. - 삭제된 블록 아래의 작업공간에 있는 위치

N.B.: 블록이 삭제되면 해당 블록의 입력에 연결된 모든 블록도 삭제되지만 다음 연결에 연결된 블록은 삭제되지 않습니다.

prev() 커서를 사전 순회에서 이전 블록 또는 작업공간 댓글로 이동합니다.
setCurNode(newNode)

커서의 위치를 설정하고 그립니다.

일반적인 Marker setCurNode 로직을 재정의하여 this.drawer.draw()를 직접 호출하는 대신 this.drawMarker()를 호출합니다.