同时显示/隐藏多个曲面的最佳实践是什么?是否将所有曲面归为一个渲染控制器?或者,是否为每个表面分配了渲染控制器?
我目前正在做后者,但尝试触发后续过渡时却遇到了明显的困难。这对我来说很难,因为我的实现没有提供何时隐藏所有表面的清晰指示。由于隐藏转换是在有限的随机时间间隔(200到2000毫秒之间)中触发的,因此更加困难。
有什么办法吗?代码如下:
for (var i = 0; i < surfaces.length; i += 1) {
var surface = surfaces[i][0];
var renderController = surfaces[i][1];
if (s.id !== clickedSurface.id) {
var fn = (function (s, rc) {
return function () { Timer.setTimeout(function () {rc.hide()}, getRandomArbitrary(200,2000)); };
})(surface, renderController);
s.colored ? Timer.setTimeout(fn, 2500) : fn();
}
}
最佳答案
如果要遍历整个曲面并一次隐藏一个曲面,可以执行以下代码所示的操作。
Example jsBin Here
function _hideNext(index) {
if (index === surfaces.length) {
//do something final, now complete
_showNext(0);
} else {
var rc = surfaces[index][1];
var surface = surfaces[index][0];
var nextIndex = index + 1;
rc.hide(surface, _hideNext.bind(this, nextIndex));
}
}
_hideNext(0);
只需根据需要更改
RenderController
选项。关于javascript - 使用RenderControllers隐藏/显示多个曲面的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27393950/