使用Famo.us RenderController堆栈容器

时间:2014-10-28 12:01:20

标签: stack lifecycle famo.us

根据我对Famo.us的理解,Renderable的生命周期由框架管理,因此我们可以从渲染树中删除节点。

我发现RenderController负责显示或隐藏元素。 RenderController甚至Lightbox的问题在于我无法堆叠视图。我打电话的时候  myRenderController.show(surfaceA); myRenderController.show(surfaceB);

surfaceA消失,不再可见。

如何创建一种堆叠布局,以便管理每层的可见度?

1 个答案:

答案 0 :(得分:1)

RenderController将控件应用于渲染树中的一个节点。为要控制的每个节点添加渲染控制器。

<强> Working Example Here

上面的代码链接显示了一个简单的示例,说明RenderController如何用于交换曲面以及将它们隐藏在视图之外。

两个RenderControllers:

  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;
  });