首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机数组html5 java脚本

随机数组html5 java脚本
EN

Stack Overflow用户
提问于 2014-11-26 04:12:54
回答 2查看 165关注 0票数 0
代码语言:javascript
复制
<!-- with thanks to http://stackoverflow.com/questions/25407926/spawn-random-images-
in-canvas-in-javascript-->
<!--http://www.freesfx.co.uk/download/?type=mp3&id=11028 
--audio loader--
http://stackoverflow.com/questions/18826147/javascript-audio-play-on-
click-->
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/style.css" />

    <title>Street</title>
    <script type="text/javascript">
        var can, ctx;
        var sprite = new Array();
        var counter = 0;
        var rot = 0;
        var centerX = -320;
        var centerY = -170;
        var sprite = new Array(id); // Array to hold the filenames

        function init() {
            can = document.getElementById("can");
            ctx = can.getContext("2d");
            // get images into array
            sprite[0] = document.getElementById("b1");
            sprite[1] = document.getElementById("b2");
            sprite[2] = document.getElementById("b3");
            sprite[3] = document.getElementById("b4");

            // draw lights out 
            draw();
            // wait 3 sec, then begin animation
            var t = setTimeout(light, 30);
        }

        function light() {
            var wait = 600;
            counter++;
            if (counter == 4) {
                counter = 0;
                wait += (Math.random() * 1500);
                rot += .01;
            }
            draw();
            setTimeout(light, wait);
        }

        function draw() {
            ctx.clearRect(0, 0, can.width, can.height);
            ctx.save();
            ctx.translate(can.width / 2, can.height / 2);

            ctx.drawImage(sprite[counter], centerX, centerY);
            ctx.restore();
        }

        function choseRandom(range) {
            if (Math.random)
                return Math.round(Math.random() * (range-1));
            else {
                var now = new Date();
                return (now.getTime() / 1000) % range;
            }
        }
        var choice = choseRandom(id);
    </script>
</head>

<body onload="init()">

    <audio id="Mp3Me" autoplay autobuffer controls>
        <source src="au1.mp3">
        <source src="au1.ogg">
    </audio>

    <img id="b1" style="display:none" src="1.png" >
    <img id="b2" style="display:none" src="2.png" >
    <img id="b3" style="display:none" src="3.png" >
    <img id="b4" style="display:none" src="4.png" >

    <canvas class="canvas" id="can" width="640" height="350" style=" border:1px solid #6F2E0D; ">
    </canvas>

    <script>
        function play(){
            var audio = document.getElementById("audio");
            audio.play();
        }
   </script>

    <input type="button" value="PLAY"  onclick="play()">
    <audio id="audio" src="door.mp3" ></audio>

    <div id="container"></div>
    <script language="JavaScript">
        document.writeln('<td' + '><img src="'
            + ranimage[choice] + '" height="180" width="160" border="0" ><' +
            '/td>');
    </script>

    <div id='container'>
        <img id = "image2" src='door.png'  />

</body>
</html>

由于堆栈溢出,上面的代码可以工作。

基本上,目前这段代码以非随机顺序显示图像,它使用数组来获取它们,并显示它们。然后,代码控制图像显示的速度。还有一个声音播放器,还有一个带有声音的按钮。

经过大量搜索后,我设法将一个简单的png文件序列动画化。然而,我一直试图广告开始停止按钮和数学随机函数(最好的音乐点击会启动一切进行)。

我想向数组中添加一个随机函数,这样它就可以随机地显示图像。无论如何,我所能做的就是,不刹车代码,或得到的是加快动画。是否有人可以修改我的代码来添加这些功能,或者请给我指点什么地方会有帮助。

随机阵列将非常有用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-26 05:29:34

演示: http://jsfiddle.net/techsin/dtz0yj4y/

代码语言:javascript
复制
function shuffle (arr) {
   arr.forEach(function(e,i){
       var rand = ~~(Math.random()*(arr.length-1));
       arr[i] = arr[rand];
       arr[rand] = e;
   });
}

var myArr = [1,2,3,4,5];
shuffle(myArr); //myArr is now shuffled!

示例.

票数 0
EN

Stack Overflow用户

发布于 2014-11-26 05:08:19

(有一个错误,更新)

例如,

代码语言:javascript
复制
var array = [1,2,3,4,5]
for(i=0; i<array.length;i++){
    var dist = Math.floor( Math.random() * array.length )
    var swp = array[i]
    array[i] = array[dist]
    array[dist] = swp
}
console.log(array) //=> shuffled
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27141198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档