【发布时间】:2014-05-16 16:01:41
【问题描述】:
我正在尝试创建一个骰子,在他确定为一个之前指示多个数字。我尝试了一种非常简单的方法,但没有奏效:这是我的代码:
<script>
//preload the six images first
var face0=new Image()
face0.src="http://www.unisg.bplaced.net/dices/d1.gif"
var face1=new Image()
face1.src="http://www.unisg.bplaced.net/dices/d2.gif"
var face2=new Image()
face2.src="http://www.unisg.bplaced.net/dices/d3.gif"
var face3=new Image()
face3.src="http://www.unisg.bplaced.net/dices/d4.gif"
var face4=new Image()
face4.src="http://www.unisg.bplaced.net/dices/d5.gif"
var face5=new Image()
face5.src="http://www.unisg.bplaced.net/dices/d6.gif"
function delay(time) {
var d1 = new Date();
var d2 = new Date();
while (d2.valueOf() < d1.valueOf() + time) {
d2 = new Date();
}
}
</script>
<img src="http://www.unisg.bplaced.net/dices/d1.gif" name="mydice">
<form><br><br>
<input type="button" value="Throw dice!" onClick="throwdice(); throwdices();">
</form>
<script type="text/javascript">
function DoAllThese() {
throwdice();
throwdices();
}
function throwdice(){
delay(500);
document.images["mydice"].src=eval("face"+5+".src");
delay(500);
throwdices();
}
function throwdices(){
var randomdices=Math.round(Math.random()*4.5);
delay(1000);
document.images["mydice"].src=eval("face"+randomdices+".src");
}
</script>
我不确定如何对数字进行排序,以使其看起来像骰子在得到解决方案之前会旋转。
【问题讨论】:
-
P.S.不要将变量命名为
face0-face5。这是一个坏主意!使用数组。var faces = []; faces.push(face0);。这会让你做faces[randomdices].src。没有更多的eval()! :-) -
您也不需要所有这些图片,只需创建一个 URL 数组,并在您想要显示时将它们分配给
.src。
标签: javascript dice