请大家帮助我。我有这段代码:
var image = new ImageSurface({
size: [300, 300],
properties: {
border: '4px solid white'
}
});
image.setContent('/img/' + _.random(1,7) + '.jpg');
var draggable = new Draggable({scale: 1});
image.pipe(draggable);
draggable.on('end', function(e) {
// SURFACE????
});
var stateModifier = new StateModifier();
node.add(stateModifier).add(draggable).add(image);
stateModifier.setTransform(
Transform.translate(100, 10, 0),
{ duration : 1000, curve: Easing.outElastic }
);
如何从可拖动事件中获取Surface对象?事件中的参数只是位置。
答案 0 :(得分:0)
首先,我想知道为什么你需要从事件中获得表面。如果每个表面有一个可拖动的,那么你可以用简单的数据绑定做一些事情。
例如..
var draggable = new Draggable({scale: 1});
draggable.image = image;
draggable.on('end', function(e) {
var image = this.image;
});
如果您真的需要从事件中获得表面,则必须编辑发出事件的代码。
仅适用于结束活动..
从Draggable.js第129行开始
function _handleEnd() {
if (!this._active) return;
this.eventOutput.emit('end', {position : this.getPosition()});
}
可以更改为..
function _handleEnd() {
if (!this._active) return;
this.eventOutput.emit('end', {position : this.getPosition(), originalEvent:event });
}
现在你可以做..
var draggable = new Draggable({scale: 1});
draggable.on('end', function(e) {
var image = e.originalEvent.origin;
});
祝你好运!