根据我对Famo.us的理解,Renderable的生命周期由框架管理,因此我们可以从渲染树中删除节点。
我发现RenderController负责显示或隐藏元素。
RenderController甚至Lightbox的问题在于我无法堆叠视图。我打电话的时候
myRenderController.show(surfaceA);
myRenderController.show(surfaceB);
surfaceA消失,不再可见。
如何创建一种堆叠布局,以便管理每层的可见度?
答案 0 :(得分:1)
RenderController
将控件应用于渲染树中的一个节点。为要控制的每个节点添加渲染控制器。
<强> Working Example Here 强>
上面的代码链接显示了一个简单的示例,说明RenderController
如何用于交换曲面以及将它们隐藏在视图之外。
var rendererOne = new RenderController();
var rendererTwo = new RenderController();
mainContext.add(modTop).add(rendererOne);
mainContext.add(modBottom).add(rendererTwo);
// Show both surfaces first
rendererOne.show(surfaceOne);
rendererTwo.show(surfaceTwo);
// Swaps who has visibility on a double click
var showing = true;
Engine.on('dblclick', function(e){
if (showing) {
rendererTwo.hide();
rendererOne.show(surfaceOne);
} else {
rendererOne.hide();
rendererTwo.show(surfaceTwo);
}
showing = !showing;
});