同时显示/隐藏多个曲面的最佳实践是什么?是否将所有曲面归为一个渲染控制器?或者,是否为每个表面分配了渲染控制器?

我目前正在做后者,但尝试触发后续过渡时却遇到了明显的困难。这对我来说很难,因为我的实现没有提供何时隐藏所有表面的清晰指示。由于隐藏转换是在有限的随机时间间隔(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/

10-12 13:16