由'mousedown'事件阻止的Famo.us GenericSync

时间:2014-08-09 18:35:08

标签: javascript sync famo.us mousedown

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

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事件?

1 个答案:

答案 0 :(得分:1)

我认为这就像在点击项目上方的zIndex中放置一些内容。如果您通过曲面管道同步它再次工作。不确定它是否有帮助如果我对你在做什么有了更多的了解,我可以进一步帮助。