クリックなどの一般的なイベントを処理する方法は知っていますが、レンダー関数で関数によって発生したイベントをリッスンする方法を理解するのに問題があります。
function( ft, events) {
console.log(events);
}); /*fires ["drag start"]
["drag"]
["apply"]
["drag"]
["apply"]
["drag"]
etc.*/
ここで、これらのイベントをリッスンするハンドラーをビューに配置したいと考えています。どうすればいいですか?
これは全体のビューです:
var myView = Backbone.View.extend({
initialize: function () {
self = this;
this.element = paper.rect();
this.setElement(this.element.node);
this.delegateEvents(this.events);
},
events: {
"click": "showHandles",
"drag end": "dragEndHandler"
},
dragEndHandler: function(e){
console.log('dragEnd');
},
showHandles: function(e){
this.ft.showHandles();
},
render: function(){
this.element.attr({
'x': this.model.get('x'),
'y': this.model.get('y'),
'width': this.model.get('width'),
'height': this.model.get('height'),
'fill': this.model.get('fill'),
'cursor': this.model.get('cursor')
})
// Add freeTransform with options and callback
this.ft = paper.freeTransform(this.element, {
'keepRatio': ['axisX', 'axisY'],
'size': 4,
//set handle
'attrs': {'fill': '#436eee', 'stroke': '#fff'}
},
function( ft, events) {
console.log(events);/*fires ["drag start"]
["drag"]
["apply"]
["drag"]
["apply"]
["drag"]
etc.*/
});
return this;
}
});