כדי להרחיב שדה קיים, צריך לבצע מחלקה משנית של שדה מובנה (למשל
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 ורישום. בקטע 'יצירת שדה מותאם אישית'.