Loop A Function - PullRequest
       1

Loop A Function

0 голосов
/ 27 мая 2011

Привет, у меня есть этот код ниже, который в основном после 25 секунд показа первого .swf второго .swf показывает. Теперь я хочу вернуться к первому через 12 секунд. а затем зациклите таким же образом. 1-й SWF 2-й SWF 1-й SWF ......

<script type="text/javascript">
            var flashvars = {};
            flashvars.xml = "config.xml";
            flashvars.font = "font.swf";
            var attributes = {};
            attributes.wmode = "transparent";
            attributes.id = "slider";
            swfobject.embedSWF("cu3er.swf", "cu3er-container", "960", "400", "9", "expressInstall.swf", flashvars, attributes);

setTimeout(function() {
  swfobject.embedSWF("printmachine.swf", "cu3er-container", "960", "400" , "0");
}, 25000);
</script>

Как бы я это сделал?

Спасибо

Ответы [ 3 ]

1 голос
/ 27 мая 2011

Следующее разбивает отображение SWF на две разные функции.Каждая функция вызывает другую через тайм-аут.Таким образом, он покажет SWF1 и выстроит метод SWF2 на 25 с.При запуске он загружает SWF2 и включает функцию SWF1 в течение 12 секунд.И затем он будет циклически чередовать каждый SWF.

Возможно, вы можете его реорганизовать, но эта основная идея должна сработать.

<script type="text/javascript">
    function showSwf1(){
        swfobject.embedSWF("cu3er.swf", "cu3er-container", "960", "400", "9", "expressInstall.swf", flashvars, attributes);
        setTimeout(showSwf2, 25000);
    }

    function showSwf2(){
        swfobject.embedSWF("printmachine.swf", "cu3er-container", "960", "400" , "0");
        setTimeout(showSwf1, 12000);
    }

    var flashvars = {};
    flashvars.xml = "config.xml";
    flashvars.font = "font.swf";
    var attributes = {};
    attributes.wmode = "transparent";
    attributes.id = "slider";
    showSwf1();
</script>

Примечание: Код не проверен, поэтому извиняюсь за незначительные опечаткичто-нибудь.Работает, когда обрабатывается в моей голове, хотя.; -)

1 голос
/ 27 мая 2011

Превратите ваши действия SWF встраивания в функцию, которая будет бесконечно зацикливаться и позволит вам добавить любые другие SWF-файлы в массив, если вы хотите расширить его в будущем:

<script type="text/javascript">
    var swfs = [{swf:"cu3er.swf",delay:25000, flashvars:{xml:"config.xml",font:"font.swf"},attributes:{wmode:"transparent",id:"slider"}}, 
                {swf:"printmachine.swf",delay:12000,flashvars:{},attributes:{}}];
    loadSWF(0);        

    function loadSWF(ind){
        if(ind >= swfs.length)ind = 0;
        swfobject.embedSWF(swfs[ind].swf, "cu3er-container", "960", "400", "9", "expressInstall.swf", swfs[ind].flashvars, swfs[ind].attributes);
        setTimeout("loadSwf("+(ind+1)+")", swfs[ind].delay);
    }
</script>
1 голос
/ 27 мая 2011

Вы можете использовать setTimeout () с надлежащей задержкой и методом обратного вызова.

<script type="text/javascript">
function aaa() {
  var flashvars = {};
  flashvars.xml = "config.xml";
  flashvars.font = "font.swf";
  var attributes = {};
  attributes.wmode = "transparent";
  attributes.id = "slider";
  swfobject.embedSWF("cu3er.swf", "cu3er-container", "960", "400", "9", "expressInstall.swf", flashvars, attributes);
  setTimeout(bbb, 25000);
}

function bbb() {
  swfobject.embedSWF("printmachine.swf", "cu3er-container", "960", "400" , "0");
  setTimeout(aaa, 12000);
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...