gpt4 book ai didi

javascript - 使用 RenderControllers 隐藏/显示多个表面的最佳方式

转载 作者:行者123 更新时间:2023-11-30 17:08:55 25 4
gpt4 key购买 nike

同时显示/隐藏多个表面的最佳做法是什么?我是否将所有表面分组在一个渲染 Controller 下?或者,是否每个表面都分配了一个渲染 Controller ?

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com