סקר מחקר: נשמח לשמוע על החוויה שלך עם Blockly
לפתיחת הסקר
הרחבת שדה קיים
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
כדי להרחיב שדה קיים, צריך לבצע מחלקה משנית של שדה מובנה (למשל
FieldTextInput
, FieldColour
) ולאחר מכן לשנות חלק ממנו בהתאם לצרכים שלך.
חלקים מסוימים בשדה שאפשר לשנות הם:
אם רוצים ליצור
שדה בהתאמה אישית
שלא מצריכה התנהגות מאף שדה מובנה, עליך לתת את המחלקה המשנית Field
.
תוספים נפוצים
רוב השדות המותאמים אישית כוללים אחד משלושת הסוגים הבאים:
- קלט טקסט: כדי שהמשתמשים יקלידו טקסט בשדה שלכם, עליכם להרחיב
FieldTextInput
.
- מספר: אם רוצים לשמור מספר, צריך להאריך את המכסה
FieldNumber
.
- תפריט נפתח: אם רוצים ליצור תפריט נפתח אבל רוצים לשמור מודל אחר
מאשר מחרוזת ברירת המחדל או מודל התמונה, צריך להרחיב את
FieldDropdown
.
- זהירות: לפני שמרחיבים את
FieldDropdown
, חשוב לבדוק שבשדה הנפתח
אפשרויות ההתאמה האישית לא יכולות למלא את הצרכים שלך.
בנסיבות מסוימות כדאי להרחיב שדה מסוג אחר. עבור
הדוגמה FieldLabelSerializable
מרחיבה את FieldLabel
.
סיווג משנה
import * as Blockly from 'blockly';
export class MyCustomTextField extends Blockly.FieldTextInput {
constructor(value, validator, config) {
super(value, validator, config);
}
}
ה-constructor של מחלקה משנית של שדה נראה דומה מאוד ל-constructor של
שדה בהתאמה אישית. החתימה של בנית המשנה צריכה
תואמת בדרך כלל לחתימה של בנאי-העל.
JSON ורישום
בנוסף, צריך לרשום את השדה פעם אחת:
Blockly.fieldRegistry.register('my_custom_text_field', MyCustomTextField);
ולספק יישום של fromJson
בכיתה כדי שהוא יפעל עם
בפורמט ה-JSON:
static fromJson(options) {
const value = Blockly.utils.parsing.replaceMessageReferences(options.value);
return new MySubclassName(value);
}
מידע נוסף על רישום שדה מופיע במאמר JSON ורישום.
בקטע 'יצירת שדה מותאם אישית'.
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-04-14 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-04-14 (שעון UTC)."],[[["To extend an existing Blockly field, subclass a built-in field like `FieldTextInput` or `FieldColour` and modify its editor, on-block display, or displayed text."],["For custom fields with unique behaviors, subclass the base `Field` class instead of extending an existing field."],["Common field extensions involve customizing text input (`FieldTextInput`), numbers (`FieldNumber`), or dropdowns (`FieldDropdown`) to meet specific needs."],["When subclassing, ensure your constructor matches the super-constructor's signature and register the field with `Blockly.fieldRegistry.register`."],["Implement the `fromJson` method in your custom field class to enable compatibility with the Blockly JSON format for serialization and deserialization."]]],["To extend an existing field, subclass a built-in field like `FieldTextInput` or `FieldColour`, modifying its editor, on-block display, or text. For unique fields, subclass `Field`. Common extensions include `FieldTextInput`, `FieldNumber`, and `FieldDropdown`. Subclass constructors should mirror the super-constructor's signature. Register the field using `Blockly.fieldRegistry.register()` and implement `fromJson` for JSON compatibility. Extending different fields such as `FieldLabelSerializable` is also possible.\n"]]