首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Backbone.js单击事件绑定到HTML5画布中呈现的视图?

如何将Backbone.js单击事件绑定到HTML5画布中呈现的视图?
EN

Stack Overflow用户
提问于 2011-04-15 06:41:45
回答 4查看 4.2K关注 0票数 7

我刚从Backbone.js开始,但看起来真的很有趣.

现在,我正在重做一个以前的项目,该项目将各种对象(2-3个不同的模型类型)绘制到一个HTML5画布中。

每个对象都是可点击的。画布有一个事件处理程序,它获取单击的位置(对画布对象是本地的),然后在对象中搜索可能产生命中的对象。

在对Backbone.js视图上的单击事件执行此操作时,是否应该使用特定的方法或最佳实践?

谢谢!

更新:发现了fabric.js,它似乎处理画布元素中对象的概念,但没有提供backbone.js风格的MVC框架。

另外,我看了一下knockout.js。它似乎比backbone.js更紧密地与HTML元素(而不是画布)联系在一起。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-22 21:52:54

我遇到这个问题是因为我正在开发一个基于主干的框架来处理画布,所以我亲自解决了这个问题。我最终得出的答案是:忘记了在画布中使用Backbone.View。如果它不能用DOM元素表示,那么使用Backbone.View就没有意义;它的属性只是不映射到画布“元素”。

请注意,您可以使用Backbone.View来表示单个canvas DOM元素,但这不是您要描述的场景。您需要的是一个自定义视图类,它可以表示画布中的对象并处理它们的事件。

票数 9
EN

Stack Overflow用户

发布于 2011-10-02 06:35:56

我还在使用画布上的Backbone.js开发一个纸牌游戏,并遇到了这个问题。我目前正在做的是拥有一个以CardView作为画布标记的el,以便在初始化时创建一个画布。卡片的所有绘制都是在此视图的render方法上完成的。但是,这个画布不会添加到DOM中。

然后我有一个Hand,它是一个Backbone.Collection,用来保存一组卡片。这个集合有一个Backbone.View附在游戏画布上(DOM中唯一和大的一个)。这个视图还包含一个Backbone.View的数组。然后我有:

代码语言:javascript
复制
render: function() {
    var that = this;
    this.ctx.save();
    _(this._views).each(function(view) {
        that.ctx.drawImage(view.render().el, 0, 0);
        that.ctx.translate(view.el.width, 0);
    });
    this.ctx.restore();
},

基本上,我使用上下文的drawImage将每个视图的画布绘制到游戏画布中。

addEventListenerHandView的画布(这是它的el)来处理单击。在这个处理程序中,我检查CardView对的鼠标位置,然后操作该视图。

请注意,这只是我正在试验的东西,因为我也是Backbone.js新手。这也许是最糟糕的方法,但我只希望你能看到其中一种方法。

我确实希望我们能够在DOM中不存在的画布上检查鼠标。如果可能的话,我们可以把addEventListener转到CardView的画布上,然后让它翻译和重新渲染。HandView的画布不需要遍历它的视图。

票数 8
EN

Stack Overflow用户

发布于 2012-07-17 08:54:53

我参加这个聚会迟到了,但我的观点和模型/收藏都不是这种逻辑的场所。

如果您正在使用fabric或其他库(我有一个使用raphael.js的应用程序),您应该创建一个定制模块,该模块处理绘图/操作,并使用本地事件处理响应画布事件(即。https://github.com/kangax/fabric.js/wiki/Working-with-events)。

如果您需要将这些事件传递出去,您应该以编程方式公开它们,并使用主干事件将它们发布到其他主干组件中。

您不应该像上面所建议的那样将您的模型和视图紧密结合在一起。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5673220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档