上面是否有任何建议的模式?
我目前的想法是,在更新序列数组之前:
当然,上述逻辑的很多工作方式取决于View,例如: Scrollview与GridLayout。同样,其他动画也可能是相关的。
所以我想我也想知道是否:
答案 0 :(得分:2)
目前很少有建议的模式,因为Famo.us对大多数社区来说仍然是新手。你不是那么晚!对于你想知道的要点..#2'社区应该创建处理这个问题的包装视图',这是长期的答案。然而,尽管它是新的,但社区没有确定的位置来共享示例和小部件。您可能需要自己尝试一下,并意识到Famo.us提供的功能仍然是一个很好的起点。
话虽如此。以GridLayout为例。 GridLayout布局后..它包含属性_modifiers下的一个Modifiers数组。您可以将这些修改器用作其他对象捕捉到的控制点。这样你就不会将你的单元格嵌入到GridLayout中,而是使用GridLayout来管理你的绝对单元格位置。
因此,要获得第一个网格单元的中心,您可以执行以下操作:
var modifier = grid._modifiers[0];
var translate = Transform.interpret(modifier.getTransform())['translate'];
var size = modifier.getSize();
var center = [translate[0] + Math.round(size[0] / 2.0),translate[1] + Math.round(size[1] / 2.0),0];
请注意,_modifiers将无法立即使用..如果此代码不在事件中或在加载GridLayout后执行,则_modifiers将是未定义的。当我遇到这种情况时,我最终会像这样进行子类化..
Surface render events in famo.us
或者只是要求引擎检查属性并在完成后删除侦听器
var check_modifiers = function(){
if (grid._modifiers){
// Do Something
Engine.removeListener('prerender',check_modifiers);
}
}
Engine.on('prerender',check_modifiers);
希望这足以让你开始..欢迎来到Famo.us