חסימה של אסטרטגיית גרירה

אסטרטגיית גרירה של בלוק היא אובייקט שקובע כיצד בלוק צריך לטפל בגרירה. הם מיישמים את הלוגיקה כדי להפוך בלוק לרכיב מרכזי. יצירת אסטרטגיות חדשות לגרירה של בלוקים מאפשרת להחליף את האופן שבו בלוקים צריכים לטפל בגרירה בלי שתצטרכו ליצור אפשרות לבחירה בהתאמה אישית או לטפל בבחירה.

לדוגמה, יכול להיות שתרצו שהבלוק ישוכפל בגרירה ולא ייגררו כרגיל. ניתן לעשות זאת על ידי חסימה של אסטרטגיות גרירה.

מלבד השיטה getRelativeToSurfaceXY, לאסטרטגיות הגרירה יש את אותן שיטות כמו IDraggable.

הטמעה

כדי ליצור אסטרטגיית גרירה, צריך להטמיע את הממשק IDragStrategy. לשם כך נדרשות כל השיטות כמו הממשק של IDraggable, מלבד השיטה getRelativeToSurfaceXY, שהבלוק כבר מטמיע.

אפשר לפעול לפי ההוראות להטמעת כלי גרירה כדי להטמיע את אסטרטגיית הגרירה, אבל בלי להטמיע את getRelativeToSurfaceXY().

Usage

כדי להשתמש באסטרטגיית גרירה מותאמת אישית, עליכם להחיל את אסטרטגיית הגרירה על כל מופע של בלוק. אפשר לעשות זאת בשיטה init של הבלוק, על ידי קריאה ל-setDragStrategy.

Blockly.Blocks['my_block'] = {
  init: function() {
    // Other initialization...
    this.setDragStrategy(new MyDragStrategy());
    // Other initialization...
  }
}