如何从布局中删除曲面?

Kei*_*las 0 famo.us

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

joh*_*ver 5

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

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

// surface to remove
surface.render = function(){ return null; }
Run Code Online (Sandbox Code Playgroud)

而已!

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

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

delete littleSurfaces['little-surface-key']
Run Code Online (Sandbox Code Playgroud)

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

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

祝好运!