บล็อกชั้นเรียน
ชั้นเรียนสำหรับ 1 บล็อก ตามปกติจะไม่เรียกใช้โดยตรง แนะนำให้ใช้ workspace.newBlock()
ลายเซ็น:
export declare class Block implements IASTNodeLocation
การนำไปใช้งาน: IASTNodeLocation
ผู้ผลิต
ผู้ผลิต | คีย์ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
(constructor)(workspace, prototypeName, opt_id) | สร้างอินสแตนซ์ใหม่ของคลาส Block |
พร็อพเพอร์ตี้
พร็อพเพอร์ตี้ | คีย์ตัวปรับแต่ง | ประเภท | คำอธิบาย |
---|---|---|---|
childBlocks_ | protected |
นี้[] | |
collapsed_ | protected |
boolean | |
COLLAPSED_FIELD_NAME |
|
สตริง | รหัสกลางทางภาษาที่กำหนดให้กับฟิลด์ที่ยุบ |
COLLAPSED_INPUT_NAME |
|
สตริง | รหัสกลางทางภาษาที่กำหนดให้กับอินพุตแบบยุบ |
colour_ | protected |
สตริง | สีของบล็อกใน "#RRGGBB" |
เขียนอะไร | (หน้า 1: บล็อก) => เป็นโมฆะ | (ไม่บังคับ) ฟังก์ชันที่ไม่บังคับที่จะกำหนดค่าบล็อกใหม่ตามเนื้อหาของกล่องโต้ตอบ Mutator | |
contextMenu | boolean | ||
ข้อมูล | สตริง | ค่าว่าง | ข้อมูลข้อความที่ไม่บังคับซึ่งรับส่งข้อมูลระหว่างบล็อกและ XML ไม่มีผล บุคคลที่สามอาจใช้สำหรับข้อมูลเมตา | |
แยกตัวออก | (p1: พื้นที่ทำงาน) => บล็อก | (ไม่บังคับ) ฟังก์ชันที่ไม่บังคับซึ่งสร้างกล่องโต้ตอบของ Mutator ด้วยคอมโพเนนต์ของบล็อกนี้ | |
ทำลายอะไร | () => เป็นโมฆะ | (ไม่บังคับ) วิธีการที่ไม่บังคับซึ่งเรียกใช้ในระหว่างกำจัด | |
ทิ้ง | protected |
boolean | ระบบกำลังกำจัดบล็อกปัจจุบันอยู่หรือไม่ |
domToMutation? | (p1: องค์ประกอบ) => เป็นโมฆะ | (ไม่บังคับ) วิธีการดีซีเรียลไลซ์ที่ไม่บังคับสำหรับระบุวิธีดีซีเรียลไลซ์สถานะการเปลี่ยนแปลงจาก XML ต้องใช้ร่วมกับการกำหนด mutationToDom |
|
getDeveloperVariables? | () => สตริง[] | (ไม่บังคับ) พร็อพเพอร์ตี้ที่ไม่บังคับสำหรับการประกาศตัวแปรนักพัฒนาซอฟต์แวร์ แสดงผลรายการชื่อตัวแปรสำหรับใช้โดยตัวสร้าง ตัวแปรนักพัฒนาซอฟต์แวร์จะไม่แสดงให้ผู้ใช้เห็นเลย แต่ได้รับการประกาศว่าเป็นตัวแปรร่วมในโค้ดที่สร้างขึ้น | |
หมวก | สตริง | (ไม่บังคับ) ชื่อประเภทหมวก | |
helpUrl | สตริง | ฟังก์ชัน | ค่าว่าง | สตริงสำหรับความช่วยเหลือด้านการบล็อก หรือฟังก์ชันที่ส่งคืน URL ว่างเปล่าหากไม่มีความช่วยเหลือ | |
ไอคอน | IIcon[] | ||
id | สตริง | ||
เริ่มต้นไหม | () => เป็นโมฆะ | (ไม่บังคับ) วิธีการที่ไม่บังคับซึ่งเรียกใช้ระหว่างการเริ่มต้น | |
inputList | อินพุต[] | ||
inputsInline? | boolean | (ไม่บังคับ) | |
inputsInlineDefault? | boolean | (ไม่บังคับ) | |
isInFlyout | boolean | ||
isInMutator | boolean | ||
isInsertionMarker_ | protected |
boolean | เป็นจริงหากบล็อกนี้เป็นเครื่องหมายแทรก |
loadExtraState? | (p1: ใดก็ได้) => เป็นโมฆะ | (ไม่บังคับ) วิธีการทำให้เป็นอนุกรมที่ไม่บังคับสำหรับระบุวิธีดีซีเรียลสถานะส่วนเกินของบล็อก (เช่น สถานะการเปลี่ยนแปลง) จากสิ่งที่เข้ากันได้กับ JSON ต้องใช้ร่วมกับการกำหนด saveExtraState |
|
mutationToDom? | (...p1: ใดก็ได้[]) => ธาตุ | (ไม่บังคับ) วิธีการทำให้ต่อเนื่อง (ไม่บังคับ) สำหรับกำหนดวิธีทำให้สถานะการเปลี่ยนแปลงเป็นอนุกรมเป็น XML ต้องใช้ร่วมกับการกำหนด domToMutation |
|
nextConnection | การเชื่อมต่อ | ค่าว่าง | ||
onchange | ((p1: บทคัดย่อ) => เป็นโมฆะ) | ค่าว่าง | (ไม่บังคับ) เมธอด Callback ที่ไม่บังคับซึ่งใช้เมื่อพื้นที่ทำงานระดับบนของบล็อกมีการเปลี่ยนแปลง โดยปกติจะมีการเรียกจากตัวสร้าง ฟังก์ชันตัวเริ่มต้นประเภทบล็อก หรือฟังก์ชันตัวเริ่มต้นส่วนขยายเท่านั้น | |
outputConnection | การเชื่อมต่อ | ค่าว่าง | ||
outputShape_ | protected |
ตัวเลข | ค่าว่าง | |
parentBlock_ | protected |
นี้ | ค่าว่าง | |
previousConnection | การเชื่อมต่อ | ค่าว่าง | ||
แสดงผลแล้ว | readonly |
boolean | การบล็อกนี้เป็น BlockSVG ใช่ไหม |
RTL | boolean | ||
saveExtraState? | (doFullSerialization?: boolean) => ไม่จำกัด | (ไม่บังคับ) วิธีการทำให้เป็นอนุกรมซึ่งไม่บังคับสำหรับระบุวิธีเรียงลำดับสถานะพิเศษของบล็อก (เช่น สถานะการเปลี่ยนแปลง) เป็นค่าที่เข้ากันได้กับ JSON ต้องใช้ร่วมกับการกำหนด loadExtraState |
|
styleName_ | protected |
สตริง | ชื่อของรูปแบบบล็อก |
suppressPrefixSuffix | boolean | ค่าว่าง | พร็อพเพอร์ตี้ที่ไม่บังคับสำหรับระงับการเพิ่ม STATEMENT_PREFIX และ STATEMENT_SUFFIX ในโค้ดที่สร้างขึ้น | |
เคล็ดลับเครื่องมือ | Tooltip.TipInfo | ||
ประเภท | สตริง | ||
พื้นที่ทำงาน | พื้นที่ทำงาน |
เมธอด
วิธีการ | คีย์ตัวปรับแต่ง | คำอธิบาย |
---|---|---|
addIcon(icon) | เพิ่มไอคอนที่กำหนดไปยังบล็อก | |
allInputsFilled(opt_shadowBlocksAreFilled) | ตรวจสอบซ้ำๆ ว่าอินพุตคำสั่งและค่าทั้งหมดได้รับการเติมบล็อกแล้วหรือยัง ตรวจสอบบล็อกคำสั่งต่อไปนี้ทั้งหมดในกลุ่มด้วย | |
appendDummyInput(name) | เพิ่มแถวอินพุตจำลอง | |
appendEndRowInput(name) | เพิ่มอินพุตที่สิ้นสุดแถว | |
appendInput(input) | ต่อท้ายแถวอินพุตที่กำหนด อนุญาตให้เพิ่มอินพุตที่กำหนดเองต่อท้ายบล็อก |
|
appendStatementInput(name) | เพิ่มแถวอินพุตคำสั่งต่อท้าย | |
appendValueInput(name) | เพิ่มแถวอินพุตค่าต่อท้าย | |
bumpNeighbours() | ชนบล็อกที่ไม่ได้เชื่อมต่อให้พอดี องค์ประกอบ 2 บล็อกที่ไม่ได้เชื่อมต่อกันจริงๆ ไม่ควรวางเรียงกันอยู่บนหน้าจอ | |
dispose(healStack) | กำจัดบล็อกนี้ | |
disposeInternal() | protected |
กำจัดบล็อกนี้โดยไม่ต้องดำเนินการตามที่บล็อกด้านบนกำหนด เช่น ไม่ทำให้เหตุการณ์เริ่มทำงาน ดึงการบล็อกออก เป็นต้น |
doInit_() | protected |
เรียกใช้ฟังก์ชัน init() และจัดการการเริ่มทำงานของเหตุการณ์ที่เกี่ยวข้อง ฯลฯ |
getChildren(ordered) | ค้นหาบล็อกทั้งหมดที่ฝังอยู่ภายในบล็อกนี้โดยตรง รวมอินพุตมูลค่าและข้อความ รวมถึงข้อความต่อไปนี้ ไม่รวมการเชื่อมต่อในแท็บเอาต์พุตหรือข้อความก่อนหน้า การบล็อกจะจัดเรียงตามตำแหน่ง (ไม่บังคับ) จากบนลงล่าง | |
getColour() | เลือกสีของบล็อก | |
getCommentText() | แสดงผลความคิดเห็นในบล็อกนี้ (หรือเป็นค่าว่างหากไม่มีความคิดเห็น) | |
getDescendants(ordered) | ค้นหาบล็อกทั้งหมดที่ฝังอยู่ภายในบล็อกนี้โดยตรงหรือโดยอ้อม รวมบล็อกนี้ในรายการ ประกอบด้วยข้อมูลค่าและข้อความ ตลอดจนข้อความต่อไปนี้ ไม่รวมการเชื่อมต่อในแท็บเอาต์พุตหรือข้อความก่อนหน้า การบล็อกจะจัดเรียงตามตำแหน่ง (ไม่บังคับ) จากบนลงล่าง | |
getDisabledReasons() | รับชุดสาเหตุว่าเหตุใดการบล็อกจึงถูกปิดใช้ในขณะนี้ (หากมี) หากเปิดใช้การบล็อก ชุดนี้จะว่างเปล่า | |
getField(name) | แสดงผลฟิลด์ที่มีชื่อจากบล็อก | |
getFieldValue(name) | แสดงผลค่ากลางทางภาษาของช่องที่ระบุ | |
getHue() | รับค่าโทนสี HSV ของบล็อก มีค่าว่างหากไม่ได้ตั้งค่าโทนสี | |
getIcon(type) | ||
getIcons() | ||
getInheritedDisabled() | ดูว่าระบบปิดใช้การบล็อกเนื่องจากผู้ปกครองหรือไม่ ระบบจะไม่พิจารณาพร็อพเพอร์ตี้ที่ปิดใช้ของการบล็อกนั้นเอง | |
getInput(name) | ดึงข้อมูลออบเจ็กต์อินพุตที่มีชื่อ | |
getInputsInline() | รับข้อมูลว่าอินพุตค่าจัดเรียงในแนวนอนหรือแนวตั้ง | |
getInputTargetBlock(name) | ดึงข้อมูลบล็อกที่แนบอยู่กับอินพุตที่มีชื่อ | |
getInputWithBlock(block) | แสดงผลอินพุตที่เชื่อมต่อกับบล็อกที่ระบุ | |
getNextBlock() | แสดงผลบล็อกคำสั่งถัดไปที่เชื่อมต่อกับการบล็อกนี้โดยตรง | |
getOutputShape() | รับรูปร่างเอาต์พุตของบล็อก | |
getParent() | แสดงผลบล็อกระดับบนสุดหรือ Null หากการบล็อกนี้อยู่ที่ระดับบนสุด บล็อกหลักคือบล็อกที่เชื่อมต่อกับการเชื่อมต่อก่อนหน้า (สำหรับบล็อกคำสั่ง) หรือบล็อกที่เชื่อมต่อกับการเชื่อมต่อเอาต์พุต (สำหรับบล็อกค่า) | |
getPreviousBlock() | แสดงบล็อกที่เชื่อมต่อกับการเชื่อมต่อก่อนหน้า | |
getRelativeToSurfaceXY() | แสดงพิกัดที่มุมซ้ายบนของบล็อกนี้ซึ่งสัมพันธ์กับต้นทางของพื้นที่วาดภาพ (0,0) ในหน่วยพื้นที่ทำงาน | |
getRootBlock() | แสดงบล็อกระดับบนสุดในแผนผังของบล็อกนี้ ระบบจะแสดงผลตัวเองหากการบล็อกนี้อยู่ที่ระดับบนสุด | |
getStyleName() | ดูชื่อรูปแบบบล็อก | |
getSurroundParent() | แสดงผลบล็อกหลักที่อยู่รอบการบล็อกปัจจุบัน หรือค่า Null หากการบล็อกนี้ไม่มีการบล็อกล้อมรอบ บล็อคหลักอาจเป็นเพียงคำสั่งก่อนหน้า ในขณะที่บล็อครอบคือคำสั่ง if, ขณะที่วนซ้ำ ฯลฯ | |
getTooltip() | แสดงข้อความเคล็ดลับเครื่องมือสำหรับบล็อกนี้ | |
getVars() | แสดงผลตัวแปรทั้งหมดที่การบล็อกนี้อ้างอิง | |
hasDisabledReason(reason) | ดูว่าปัจจุบันมีการปิดใช้การบล็อกด้วยเหตุผลที่ระบุหรือไม่ | |
hasIcon(type) | ||
initModel() | เรียกใช้ initModel ในทุกช่องบนบล็อก อาจมีการโทรมากกว่า 1 ครั้ง ต้องเรียกใช้ initModel หรือ initSvg หลังจากสร้างการบล็อกและก่อนการโต้ตอบครั้งแรกกับบล็อก การโต้ตอบประกอบด้วยการดำเนินการของ UI (เช่น การคลิกและลาก) และเหตุการณ์การเริ่มทำงาน (เช่น สร้าง ลบ และเปลี่ยนแปลง) | |
isCollapsed() | ดูว่าบล็อกยุบอยู่หรือไม่ | |
isDeletable() | ดูว่าบล็อกนี้ลบได้หรือไม่ | |
isDisposed() | แสดงผลหากมีการกำจัด / ลบการบล็อกนี้ | |
isDuplicatable() | รับข้อมูลว่าการบล็อกทำซ้ำได้หรือไม่ หากทำซ้ำการบล็อกนี้และองค์ประกอบสืบทอดจะทำให้การบล็อกนี้เกินขีดจำกัดของพื้นที่ทำงาน การบล็อกนี้จะทำซ้ำไม่ได้ หากทำซ้ำการบล็อกนี้และองค์ประกอบสืบทอดจะทําให้ประเภทใดก็ตามอยู่เหนือ maxInstances ของบล็อกนี้ทำซ้ำไม่ได้ | |
isEnabled() | ดูว่าการบล็อกนี้เปิดใช้หรือไม่ ระบบจะถือว่าการบล็อกเปิดใช้อยู่หากไม่มีเหตุผลใดๆ ที่ทำให้ปิดใช้ไม่ได้ การบล็อกอาจยังถูกปิดใช้ด้วยเหตุผลอื่นๆ แม้ว่าผู้ใช้จะพยายามเปิดใช้ด้วยตนเอง เช่น เมื่อการบล็อกอยู่ในตำแหน่งที่ไม่ถูกต้อง | |
isInsertionMarker() | รับข้อมูลว่าบล็อกนี้เป็นบล็อกตัวทำเครื่องหมายการแทรกหรือไม่ | |
isOwnDeletable() | แสดงผลว่าพร็อพเพอร์ตี้ที่ลบได้ของบล็อกนี้เป็นจริงหรือเท็จ | |
isOwnEditable() | แสดงผลว่าพร็อพเพอร์ตี้ที่แก้ไขได้ของบล็อกนี้เป็นจริงหรือเท็จ | |
isShadow() | รับข้อมูลว่าบล็อกนี้เป็นบล็อกเงาหรือไม่ | |
jsonInit(json) | เริ่มต้นการบล็อกนี้โดยใช้คำอธิบาย JSON แบบข้ามแพลตฟอร์มและเหมาะกับการปรับให้เป็นสากล | |
mixin(mixinObj, opt_disableCheck) | เพิ่มคีย์/ค่าจากMixinObj ลงในออบเจ็กต์บล็อกนี้ โดยค่าเริ่มต้น วิธีนี้จะช่วยตรวจสอบว่าคีย์ในmixinObj จะไม่เขียนทับค่าที่มีอยู่ในบล็อก รวมถึงค่าต้นแบบ ซึ่งเป็นการรับประกันบางส่วนจากความไม่เข้ากันระหว่าง Mixin / ส่วนขยายกับฟีเจอร์การบล็อกในอนาคต การตรวจสอบนี้สามารถปิดใช้ได้โดยการส่งผ่าน true เป็นอาร์กิวเมนต์ที่สอง | |
moveBy(dx, dy, reason) | ย้ายบล็อกตามออฟเซ็ตที่เกี่ยวข้อง | |
moveInputBefore(name, refName) | ย้ายอินพุตที่มีชื่อไปยังตำแหน่งอื่นในบล็อกนี้ | |
moveNumberedInputBefore(inputIndex, refIndex) | ย้ายอินพุตที่มีตัวเลขไปยังตำแหน่งอื่นในบล็อกนี้ | |
removeIcon(type) | นำไอคอนที่ getType ตรงกับ iconType ที่ระบุออกจากการบล็อก | |
removeInput(name, opt_quiet) | นําอินพุตออกจากบล็อกนี้ | |
renameVarById(oldId, newId) | การแจ้งเตือนว่าตัวแปรจะเปลี่ยนชื่อ หากรหัสตรงกับตัวแปรของบล็อกนี้ ให้เปลี่ยนชื่อ | |
setCollapsed(collapsed) | กำหนดว่าจะยุบบล็อกหรือไม่ | |
setColour(colour) | เปลี่ยนสีของบล็อก | |
setCommentText(text) | ตั้งค่าข้อความความคิดเห็นของบล็อกนี้ | |
setDeletable(deletable) | ตั้งค่าว่าจะลบบล็อกนี้ออกได้หรือไม่ | |
setDisabledReason(disabled, reason) | เพิ่มหรือนำเหตุผลในการปิดใช้การบล็อกออก หากการบล็อกมีเหตุผลในการปิดใช้ จะถือว่าการบล็อกนั้นปิดใช้ไปแล้ว การบล็อกอาจถูกปิดใช้ด้วยเหตุผลหลายประการไปพร้อมกัน เช่น เมื่อผู้ใช้ปิดใช้งานด้วยตนเอง หรือการบล็อกไม่ถูกต้อง | |
setEditable(editable) | ตั้งค่าว่าบล็อกนี้แก้ไขได้หรือไม่ | |
setEnabled(enabled) | ||
setFieldValue(newValue, name) | ตั้งค่าของช่องที่ระบุสำหรับบล็อกนี้ | |
setHelpUrl(url) | ตั้งค่า URL ของหน้าความช่วยเหลือของบล็อกนี้ | |
setInputsInline(newBoolean) | กำหนดว่าอินพุตค่าจะจัดเรียงในแนวนอนหรือแนวตั้ง | |
setMovable(movable) | กำหนดว่าต้องย้ายบล็อกนี้ได้หรือไม่ | |
setMutator(_mutator) | กำหนดกล่องโต้ตอบ Mutator ให้บล็อกนี้ | |
setNextStatement(newBoolean, opt_check) | กำหนดว่าจะให้อีกบล็อกหนึ่งต่อเข้ากับด้านล่างของบล็อกสี่เหลี่ยมนี้ได้หรือไม่ | |
setOnChange(onchangeFn) | ตั้งค่าฟังก์ชัน Callback ที่จะใช้เมื่อใดก็ตามที่พื้นที่ทำงานระดับบนของบล็อกมีการเปลี่ยนแปลง โดยแทนที่เครื่องจัดการ onchange ก่อนหน้า โดยปกติจะมีการเรียกจากตัวสร้าง ฟังก์ชันตัวเริ่มต้นประเภทบล็อก หรือฟังก์ชันตัวเริ่มต้นส่วนขยายเท่านั้น | |
setOutput(newBoolean, opt_check) | กำหนดว่าการบล็อกนี้จะแสดงค่าหรือไม่ | |
setOutputShape(outputShape) | กำหนดรูปร่างเอาต์พุตของบล็อก | |
setPreviousStatement(newBoolean, opt_check) | กำหนดว่าบล็อกนี้สามารถต่อเข้ากับด้านล่างของบล็อกอื่นได้หรือไม่ | |
setStyle(blockStyleName) | กำหนดค่ารูปแบบและสีของบล็อก | |
setTooltip(newTip) | ตั้งค่าเคล็ดลับเครื่องมือสําหรับการบล็อกนี้ | |
setWarningText(_text, _opt_id) | ตั้งข้อความเตือนของบล็อกนี้ | |
toDevString() | เมธอดนี้จะแสดงสตริงที่อธิบายการบล็อกนี้ในข้อกำหนดของนักพัฒนาซอฟต์แวร์ (พิมพ์ชื่อและรหัส เป็นภาษาอังกฤษเท่านั้น) ใช้สำหรับบันทึกของคอนโซลและข้อผิดพลาด หากคุณต้องการสตริงที่ใช้ภาษาท้องถิ่นของผู้ใช้ (รวมถึงข้อความบล็อก ค่าฟิลด์ และบล็อกย่อย) ให้ใช้ [toString()] |
|
toString(opt_maxLength, opt_emptyToken) | สร้างการนำเสนอแบบข้อความที่มนุษย์อ่านได้ของบล็อกนี้และองค์ประกอบย่อยทั้งหมด | |
unplug(opt_healStack) | ถอดปลั๊กบล็อกนี้ออกจากบล็อกขั้นสูง หากบล็อกนี้เป็นคำสั่ง ให้เลือกบล็อกด้านล่างอีกครั้งด้วยบล็อกที่ด้านบน |