跳到主要内容

# Dragon

> @types IPublicModelDragon
> @since v1.0.0

## 基本介绍​

拖拽对象

### 对应接口​

    import { IPublicModelDragon } from '@alilc/lowcode-types';

### 支持版本​

@since v1.1.0

## 属性​

### dragging​

是否正在拖动

    /**
     * is dragging or not
     */
    get dragging(): boolean;

## 方法​

### onDragstart​

绑定 dragstart 事件

    /**
     * 绑定 dragstart 事件
     * bind a callback function which will be called on dragging start
     * @param func
     * @returns
     */
    onDragstart(func: (e: IPublicModelLocateEvent) => any): () => void;

### onDrag​

绑定 drag 事件

    /**
     * 绑定 drag 事件
     * bind a callback function which will be called on dragging
     * @param func
     * @returns
     */
    onDrag(func: (e: IPublicModelLocateEvent) => any): () => void;

### onDragend​

绑定 dragend 事件

    /**
     * 绑定 dragend 事件
     * bind a callback function which will be called on dragging end
     * @param func
     * @returns
     */
    onDragend(func: (o: { dragObject: IPublicModelDragObject; copy?: boolean }) => any): () => void;

### from​

设置拖拽监听的区域 shell，以及自定义拖拽转换函数 boost

    /**
     * 设置拖拽监听的区域 shell，以及自定义拖拽转换函数 boost
    * set a html element as shell to dragon as monitoring target, and
    * set boost function which is used to transform a MouseEvent to type
    * IPublicTypeDragNodeDataObject.
     * @param shell 拖拽监听的区域
     * @param boost 拖拽转换函数
     */
    from(shell: Element, boost: (e: MouseEvent) => IPublicTypeDragNodeDataObject | null): any;

### boost​

发射拖拽对象

    /**
     * 发射拖拽对象
     * boost your dragObject for dragging(flying)
     *
     * @param dragObject 拖拽对象
     * @param boostEvent 拖拽初始时事件
     */
    boost(dragObject: IPublicTypeDragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: IPublicModelNode): void;

### addSensor​

添加投放感应区

    /**
     * 添加投放感应区
     * add sensor area
     */
    addSensor(sensor: any): void;

### removeSensor​

移除投放感应

    /**
     * 移除投放感应
     * remove sensor area
     */
    removeSensor(sensor: any): void;