提交 5c41f814 编写于 作者: K kener

force拖拽事件~

上级 342c1a26
...@@ -16,13 +16,18 @@ define(function(require) { ...@@ -16,13 +16,18 @@ define(function(require) {
* @param {Object} component 组件 * @param {Object} component 组件
*/ */
function Force(messageCenter, zr, option, component) { function Force(messageCenter, zr, option, component) {
// 基类装饰
var ComponentBase = require('../component/base'); var ComponentBase = require('../component/base');
ComponentBase.call(this, zr); ComponentBase.call(this, zr);
// 可计算特性装饰
var CalculableBase = require('./calculableBase');
CalculableBase.call(this, zr, option);
var ecConfig = require('../config'); var ecConfig = require('../config');
var ecData = require('../util/ecData'); var ecData = require('../util/ecData');
var zrConfig = require('zrender/config');
var zrEvent = require('zrender/tool/event');
var zrColor = require('zrender/tool/color'); var zrColor = require('zrender/tool/color');
var zrUtil = require('zrender/tool/util'); var zrUtil = require('zrender/tool/util');
var vec2 = require('zrender/tool/vector'); var vec2 = require('zrender/tool/vector');
...@@ -170,6 +175,11 @@ define(function(require) { ...@@ -170,6 +175,11 @@ define(function(require) {
}); });
} }
// 拖拽特性
self.setCalculable(shape);
shape.ondragstart = self.shapeHandler.ondragstart;
shape.draggable = true;
nodeShapes.push(shape); nodeShapes.push(shape);
self.shapeList.push(shape); self.shapeList.push(shape);
...@@ -359,9 +369,64 @@ define(function(require) { ...@@ -359,9 +369,64 @@ define(function(require) {
_buildShape(); _buildShape();
} }
/**
* 输出动态视觉引导线
*/
self.shapeHandler.ondragstart = function() {
self.isDragstart = true;
}
/**
* 拖拽开始
*/
function ondragstart(param, status) {
if (!self.isDragstart || !param.target) {
// 没有在当前实例上发生拖拽行为则直接返回
return;
}
console.log('dragstart', param.target);
// 处理完拖拽事件后复位
self.isDragstart = false;
// 我想你需要这个
zr.on(zrConfig.EVENT.MOUSEMOVE, _onmousemove);
}
/**
* 数据项被拖拽出去,重载基类方法
*/
function ondragend(param, status) {
if (!self.isDragend || !param.target) {
// 没有在当前实例上发生拖拽行为则直接返回
return;
}
console.log('dragend', param.target);
// 别status = {}赋值啊!!
status.dragIn = true;
//你自己refresh的话把他设为false,设true就会重新掉refresh接口
status.needRefresh = false;
// 处理完拖拽事件后复位
self.isDragend = false;
zr.un(zrConfig.EVENT.MOUSEMOVE, _onmousemove);
}
// 拖拽中位移信息
function _onmousemove(param) {
console.log(
param,
zrEvent.getX(param.event),
zrEvent.getY(param.event)
)
}
self.init = init; self.init = init;
self.refresh = refresh; self.refresh = refresh;
self.ondragstart = ondragstart;
self.ondragend = ondragend;
init(option, component); init(option, component);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册