如何从布局中删除曲面?

时间:2014-05-13 05:43:04

标签: famo.us

我创建了许多添加到布局的小表面(在这种情况下是页眉页脚布局),动画,然后需要消失。但是,我不确定一旦添加后如何移除表面?

2 个答案:

答案 0 :(得分:5)

Kraig在可能的情况下使用RenderController是正确的,但我不建议你这样做。 RenderController适用于大型布局,而不适用于小型粒子等。 RenderController一次只显示一个视图。

我已经在IRC频道上询问了这个问题,但事实证明我这样做了,感觉很酷,但仍然是推荐的最直接的方法。我们的想法是重新定义渲染函数以返回null。

// surface to remove
surface.render = function(){ return null; }

那就是它!

请确保删除代码中的所有引用!

我经常从一个物体做到这一点..

delete littleSurfaces['little-surface-key']

FWIW更高级的方法是实际定义一个视图,该视图专门控制渲染的曲面。您可以通过在自定义视图上定义渲染函数来执行此操作,该视图返回所谓的renderSpec。 renderSpec是一个哈希列表,用于定义要渲染的曲面。每个人都指出的例子是Flipper类。看看Flippers渲染功能..

https://github.com/Famous/views/blob/master/Flipper.js

祝你好运!

答案 1 :(得分:0)

您可以使用 RenderController 对象添加/删除曲面。您还可以在显示和隐藏内容时应用可选转换。

DOM有时可能会骗你,因为Famo.us会重新利用和回收DOM Elements以提高效率。

https://famo.us/docs/api/latest/views/RenderController