根据随机顺序更改php页面上的swf文件

时间:2015-03-18 13:50:33

标签: php

我打开了php页面时需要显示的4个flash文件。我们不希望页面每次都以相同的动画开始,所以我需要一个PHP脚本来旋转它们。我打算每次打开页面时将数字1-4重新排列,并根据它显示swf。因此,如果shuffle中的第一个数字是4,则显示swf 4.我已经弄明白了但是如何根据shuffle数组中的顺序改变swf后说1分钟?

$values = range(1, 4);
shuffle($values);
foreach ($values as $value) {
$val[] = $value;
}
echo $val[0] . '<br>';
echo $val[1] . '<br>';
echo $val[2] . '<br>';
echo $val[3] . '<br>';

然后说数组$ val [] = 4,2,1,3并且每个swf动画长1分钟我需要显示swf4 1分钟,然后swf2显示1分钟,然后swf1显示1分钟等等。 / p>

1 个答案:

答案 0 :(得分:0)

这就是我最后所做的:

首先创建一个shuffle函数:

<script type="text/javascript">
Array.prototype.shuffle = function() {
    var input = this;

    for (var i = input.length-1; i >=0; i--) {

        var randomIndex = Math.floor(Math.random()*(i+1));
        var itemAtIndex = input[randomIndex];

        input[randomIndex] = input[i];
        input[i] = itemAtIndex;
    }
    return input;
}
</script>  

然后创建数组并将其随机播放

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript">
var tempArray = [ 1, 2, 3, 4 ]
tempArray.shuffle();



//when the document is loaded display the first flash in the array
$( document ).ready(function() {
$.ajax( "flash-" + tempArray[0] + ".php" )
.done(function(res) {
        document.getElementById("swfdiv").innerHTML = res;
    })
});

//the function to display the second flash
function myFunction1() {
    //alert (tempArray[1]);
    $.ajax( "flash-" + tempArray[1] + ".php" )
    .done(function(res) {
        document.getElementById("swfdiv").innerHTML = res;
    })
}
//the function to display the thirdflash
function myFunction2() {
    //alert (tempArray[2]);
    $.ajax( "flash-" + tempArray[2] + ".php" )
    .done(function(res) {
        document.getElementById("swfdiv").innerHTML = res;
    })
}
//the function to display the fourth flash
function myFunction3() {
    //alert (tempArray[1]);
    $.ajax( "flash-" + tempArray[3] + ".php" )
    .done(function(res) {
        document.getElementById("swfdiv").innerHTML = res;
    })
}

//let the function for the second flash execute after 15 sec
setTimeout(myFunction1, 15000);
//let the function for the second flash execute after 30 sec
setTimeout(myFunction2, 30000);
//let the function for the second flash execute after 45 sec
setTimeout(myFunction3, 60000);

</script>