我需要构建一个多媒体播放器,其中的图像在特定时间出现,其中一些以循环模式显示。我找不到一个按照我的客户希望它工作的方式的库,所以我自己构建了一个。
我遇到了一个我无法处理的愚蠢问题 :-( 谷歌搜索没有任何帮助。
我尝试了无数的排列,但这里是我的 Coffeescript 函数的一个例子:
# The slideshow
showImages = (current_time, exercise) ->
for timing, img of exercises[exercise].animation
# string to float -> to float with one decimal
if current_time >= timing and current_time < (+timing + 0.2).toFixed(1) and current_time > 0.5
this_id = '' + img + '-' + timing.replace '.', '-'n + ''
activeId = $('#slideshow img.active').first().attr('id')
eval("$('#" + activeId + "').fadeOut(500).removeClass('active')")
eval("$('#" + this_id + "').addClass('active')")
break
这段代码在很多方面都很糟糕,你可以随意改进它,但这是我的主要问题:
- 具有活动类且位于堆栈顶部的图像将淡出。好的。
- 同一张图片删除了活动类。好的。
- 堆栈顶部的新图像(带有#this_id)获取活动类。好的。
- 然后相同的新图像淡出!!!一点都不好。
以前的代码更简单,但我绝望的调试尝试使它变得更丑陋。
请注意,在启动下一个功能之前,我确实研究了功能等待完成的情况,但无法实施此示例的建议。
在此先感谢您的帮助。