استراتژی کشیدن بلوک، شیئی است که تعیین می کند یک بلوک چگونه باید درگ ها را مدیریت کند. آنها منطق را پیاده سازی می کنند تا یک بلوک قابل کشیدن باشد. ایجاد استراتژیهای کشیدن بلوک جدید به شما این امکان را میدهد تا نحوه مدیریت بلوکها را بدون نیاز به ایجاد یک انتخاب سفارشی یا مدیریت انتخاب تغییر دهید.
به عنوان مثال، ممکن است بخواهید به جای کشیدن به طور معمول، بلوک شما در هنگام کشیدن تکرار شود. استراتژی های کشیدن بلاک به شما این امکان را می دهد که این کار را انجام دهید.
استراتژیهای کشیدن، علاوه بر متد getRelativeToSurfaceXY ، همه روشهای مشابه IDraggable را دارند.
پیاده سازی
برای ایجاد یک استراتژی کشیدن، باید رابط IDragStrategy را پیاده سازی کنید. این به همه روشهای مشابه رابط IDraggable نیاز دارد، به جز متد getRelativeToSurfaceXY که بلوک قبلاً آن را پیادهسازی کرده است.
میتوانید دستورالعملهای اجرای یک draggable را برای پیادهسازی استراتژی کشیدن خود دنبال کنید، اما از اجرای getRelativeToSurfaceXY() صرفنظر کنید.
استفاده
برای استفاده از یک استراتژی کشیدن سفارشی، باید استراتژی کشیدن را برای هر نمونه از یک بلوک اعمال کنید. می توانید این کار را در روش init بلاک خود با فراخوانی setDragStrategy انجام دهید.
Blockly.Blocks['my_block'] = {
init: function() {
// Other initialization...
this.setDragStrategy(new MyDragStrategy());
// Other initialization...
}
}