我注意到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
事件?
答案 0 :(得分:1)
我认为这就像在点击项目上方的zIndex中放置一些内容。如果您通过曲面管道同步它再次工作。不确定它是否有帮助如果我对你在做什么有了更多的了解,我可以进一步帮助。