javascript - Famo.us GenericSync 被 'mousedown' 事件阻止

标签 javascript synchronization famo.us mousedown

我注意到 Famo.us 中的 GenericSync 类有一些奇怪的行为。如果您在表面上添加 “mousedown” 事件,它只会阻止引擎上的 GenericSync。只需注释掉 Fiddle 中的最后一行即可查看问题。

http://jsfiddle.net/ckhu1pvw/8/

define('main', function (require, exports, module) {
    var Engine = require('famous/core/Engine');
    var EventHandler = require('famous/core/EventHandler');
    var Surface = require('famous/core/Surface');    
    var mainContext = Engine.createContext();    
    var surface = new Surface({
        size: [400, 200],
        content: "Drag on me",
        properties: {
            background: "red",
            lineHeight: "200px",
            textAlign: "center",
            color: "white"
        }
    });    
    var eventHandler = new EventHandler();
    surface.pipe(eventHandler);  
    mainContext.add(surface);    
    var GenericSync = require("famous/inputs/GenericSync");
    var MouseSync = require("famous/inputs/MouseSync");
    var TouchSync = require("famous/inputs/TouchSync");
    var ScrollSync = require("famous/inputs/ScrollSync");    
    GenericSync.register({
        mouse: MouseSync,
        touch: TouchSync,
        scroll: ScrollSync
    });
    var sync = new GenericSync();    
    sync.addSync(["mouse", "touch", "scroll"]);
    sync.on("start", function (event) {
        console.log("SyncStart");
    });    
    sync.on("update", function (event) {
        surface.setContent(event.delta[0] + ", " + event.delta[1]);
    });    
    sync.on("end", function (event) {
        console.log("SyncEnd");
        surface.setContent("0, 0");
    });   
    Engine.pipe(sync);    
    // comment out this line to see the sync fail :(
    //surface.on('mousedown', function(e) {console.log('The down of the mice');});
});

这是一个更大计划的最后一个谜题,所以如果你看的话请尽量保持类似的结构(我的意思是请在引擎上使用同步)。欢迎任何肮脏的黑客攻击,我只是对优雅的解决方案失去了希望。

谢谢, 戴夫

更新,作者 David Szucs,2014 年 8 月 11 日

我该怎么做才能在表面上捕获 mousedown 事件以及在全局同步上触发 start 事件?

最佳答案

我会认为它就像在您点击的项目上方的 zIndex 中放置一些东西。如果您通过表面传输同步,它会再次工作。不确定它是否有帮助如果我对你在做什么有更多的了解我可以提供进一步的帮助。

关于javascript - Famo.us GenericSync 被 'mousedown' 事件阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25221791/

相关文章:

javascript - 修复 Javascript 中的常见 URL 错误

algorithm - 1 位作者,M 位读者消费同一个项目

c++ - Vulkan:在多个命令缓冲区中排序图像内存屏障

javascript - 将修改器添加到场景

javascript - rootmodifers 在 famo.us 中有什么作用?

javascript - 如何将带有标题的图像插入到 CKEditor 5 中的自定义元素中?

javascript - jScrollPane 不适用于 meteor.js

javascript - 缩放文本以适合 Famo.us Surface

javascript - 如何使每次击键更改图像?

mysql - 在数据库中查找新行