אסטרטגיה לגרירת בלוקים היא אובייקט שקובע איך בלוק צריך לטפל היא גרירה. הם מטמיעים את הלוגיקה כדי להפוך בלוק לניתן לגרירה. יצירת אסטרטגיות חדשות לגרירה של בלוקים מאפשרת לכם לשנות את האופן שבו בלוקים מטפלים בגרירה, בלי שתצטרכו ליצור רכיב בחירה מותאם אישית או לטפל בבחירה.
לדוגמה, אולי תרצו שהבלוק ישוכפל במהלך גרירה, ולא וגרירה כרגיל. שיטות בידינג מסוג 'חסימת גרירה' מאפשרות לכם לעשות זאת.
לשיטות גרירה יש את כל השיטות של IDraggable
, מלבד השיטה getRelativeToSurfaceXY
.
הטמעה
כדי ליצור אסטרטגיית גרירה, עליך להטמיע
IDragStrategy
. לשם כך, צריך את כל השיטות של הממשק IDraggable
, מלבד השיטה getRelativeToSurfaceXY
, שכבר מיושמת בבלוק.
כדי להטמיע את אסטרטגיית ההזזה, אפשר לפעול לפי ההוראות להטמעת רכיב שניתן לגרירה, אבל לדלג על ההטמעה של getRelativeToSurfaceXY()
.
שימוש
כדי להשתמש באסטרטגיית גרירה מותאמת אישית, צריך להחיל את אסטרטגיית הגרירה על כל מכונה של בלוק. אפשר לעשות זאת בשיטה init
של החסימה, על ידי:
התקשרות אל setDragStrategy
.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}