Blockly > LineCursor

คลาส LineCursor

คลาสสำหรับเคอร์เซอร์บรรทัด

ลายเซ็น:

export declare class LineCursor extends Marker 

ขยาย: Marker

ผู้ผลิต

ผู้ผลิต คีย์ตัวปรับแต่ง คำอธิบาย
(constructor)(workspace) สร้างอินสแตนซ์ใหม่ของคลาส LineCursor

พร็อพเพอร์ตี้

พร็อพเพอร์ตี้ คีย์ตัวปรับแต่ง ประเภท คำอธิบาย
ประเภท สตริง
workspace

protected

readonly

WorkspaceSvg

เมธอด

วิธีการ คีย์ตัวปรับแต่ง คำอธิบาย
atEndOfLine() แสดงค่าเป็นจริงก็ต่อเมื่อโหนดที่เราจะไปยังหากมีการเรียกใช้ in() เหมือนกับโหนดที่เราจะไปยังหากมีการเรียกใช้ next() ซึ่งก็คือหาก LineCursor อยู่ที่ท้าย "บรรทัดปัจจุบัน" ของโปรแกรม
getCurNode()

รับตำแหน่งปัจจุบันของเคอร์เซอร์

ลบล้าง getCurNode ของเครื่องหมายปกติเพื่ออัปเดตโหนดปัจจุบันจากบล็อกที่เลือก โดยปกติแล้วการดำเนินการนี้จะเกิดขึ้นผ่านเครื่องมือฟังการเลือก แต่จะไม่เรียกใช้ทันทีเมื่อ Gesture เรียกใช้ Blockly.common.setSelected โดยเฉพาะอย่างยิ่ง Listener จะทำงานหลังจากแสดงเมนูตามบริบท

getFirstNode() รับโหนดแรกที่ไปยังได้ในพื้นที่ทำงาน หรือ null หากไม่มี
getLastNode() รับโหนดสุดท้ายที่ไปยังได้ในพื้นที่ทำงาน หรือ null หากไม่มี
getNextNode(node, isValid, loop) รับโหนดถัดไปใน AST โดยอาจอนุญาตให้วนซ้ำได้
getPreviousNode(node, isValid, loop) รับโหนดก่อนหน้าใน AST โดยอาจอนุญาตให้วนซ้ำได้
in() ย้ายเคอร์เซอร์ไปยังการเชื่อมต่ออินพุตหรือฟิลด์ถัดไปในการสำรวจก่อนลำดับ
next() เลื่อนเคอร์เซอร์ไปยังบล็อกหรือความคิดเห็นในพื้นที่ทำงานถัดไปในการค้นหาแบบ Pre-order
out() ย้ายเคอร์เซอร์ไปยังการเชื่อมต่ออินพุตหรือฟิลด์ก่อนหน้าในการค้นหาแบบ Pre-order
postDelete() เลื่อนเคอร์เซอร์ไปยังตำแหน่งที่ถูกต้องแรกใน this.potentialNodes หลังจากลบบล็อก
preDelete(deletedBlock)

เตรียมพร้อมสำหรับการลบบล็อกโดยสร้างรายการโหนดที่เราสามารถย้ายเคอร์เซอร์ไปได้ในภายหลังและบันทึกลงใน this.potentialNodes

หลังจากลบแล้ว ให้เรียกใช้ postDelete เพื่อย้ายไปยังโหนดแรกที่ใช้ได้ในรายการนั้น

สถานที่ที่คุณควรลอง (ตามลำดับความสำคัญ) มีดังนี้

- ตำแหน่งปัจจุบัน - การเชื่อมต่อที่บล็อกที่ลบแล้วแนบอยู่ - บล็อกที่เชื่อมต่อกับการเชื่อมต่อถัดไปของบล็อกที่ถูกลบ - บล็อกหลักของบล็อกที่ถูกลบ - ตำแหน่งในพื้นที่ทำงานใต้บล็อกที่ถูกลบ

N.B.: เมื่อลบบล็อก ระบบจะลบบล็อกทั้งหมดที่เชื่อมต่อกับอินพุตของบล็อกนั้นด้วย แต่จะไม่ลบบล็อกที่เชื่อมต่อกับการเชื่อมต่อถัดไป

prev() ย้ายเคอร์เซอร์ไปยังบล็อกหรือความคิดเห็นในพื้นที่ทำงานก่อนหน้าในการค้นหาแบบ Pre-order
setCurNode(newNode)

ตั้งค่าตำแหน่งของเคอร์เซอร์แล้ววาด

ลบล้างตรรกะ Marker setCurNode ปกติเพื่อเรียกใช้ this.drawMarker() แทนที่จะเรียกใช้ this.drawer.draw() โดยตรง