Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите упростить функцию (https://javascript.ru/forum/misc/30234-pomogite-uprostit-funkciyu.html)

bratkovsky 28.07.2012 17:03

Помогите упростить функцию
 
Например при 50-ти песнях которые дожны играть при нажатии на ссылку
получается очень много funktion play нужно создавать, пожайлуста помогите упростить это дело...

в плеере есть music1.mp3 для проигрывания музыки


<html>
<head>






</head>
<body>

<script>

function play1()
{
	var div=document.getElementById('Result');
	div.style.display=(div.style.display=='none') ? '' : 'none';
	div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way=music1.mp3&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment=" /></object></center>  ';
}



function play2()
{
	var div=document.getElementById('Result');
	div.style.display=(div.style.display=='none') ? '' : 'none';
	div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way=music2.mp3&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment=" /></object></center>  ';
}



function play3()
{
	var div=document.getElementById('Result');
	div.style.display=(div.style.display=='none') ? '' : 'none';
	div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way=music3.mp3&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment=" /></object></center>  ';
}

</script>


<a class='link' OnClick='play1();'>Play1</a><br>
<a class='link' OnClick='play2();'>Play2</a><br>
<a class='link' OnClick='play3();'>Play3</a><br>

<div id='Result' style='dysplay:none'></div>


</body></html>

oneguy 28.07.2012 17:12

У вас функции отличаются только одним символом в длинном строковом литерале. Поэтому лучше сделать 1 функцию и передать номер музыкального файла в качестве параметра.
function play(index)
{
    var div=document.getElementById('Result');
    div.style.display=(div.style.display=='none') ? '' : 'none';
    div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way=music'+index+'.mp3&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment=" /></object></center>  ';
}

<a class='link' OnClick='play(1);'>Play1</a><br>
<a class='link' OnClick='play(2);'>Play2</a><br>
<a class='link' OnClick='play(3);'>Play3</a><br>

bratkovsky 28.07.2012 17:23

Понимаете просто адрес music1.mp3 может быть разным в названии, здесь цифра просто для примера...

как передать name.mp3 в плеер чтоб при нажатии плеер принял url и при этом как бы обновился?

oneguy 28.07.2012 17:29

Тогда в функцию нужно передать ту подстроку, которая может изменяться.
function play(name)
	{
	    var div=document.getElementById('Result');
	    div.style.display=(div.style.display=='none') ? '' : 'none';
	    div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way='+name+'&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment=" /></object></center>  ';
	}

<a class='link' OnClick='play("music1.mp3");'>Play1</a><br>
<a class='link' OnClick='play("music2.mp3");'>Play2</a><br>
<a class='link' OnClick='play("music3.mp3");'>Play3</a><br>

Я никогда не работал с флеш-роликами на веб-странице и не знаю, есть ли лучше способ проиграть ролик сначала с новыми параметрами, чем создавать элемент <object> заново.

bratkovsky 28.07.2012 17:33

Спасибо я уже догна фишку просто зарание после вашего ответа задал вопрос:) большое спасибо:)

bratkovsky 28.07.2012 17:43

Простите у меня тут еще один вопрос:) а как в таком случае передать два значения в плеер music.mp3 и еще коментарий в параметр comment=коментарий? comment= он в коце плеера..

oneguy 28.07.2012 18:07

function play(name, comment)
	{
	    var div=document.getElementById('Result');
	    div.style.display=(div.style.display=='none') ? '' : 'none';
	    div.innerHTML='<center><object id="player" type="application/x-shockwave-flash" data="http://flv-mp3.com/i/pic/ump3player_500x70.swf" height="45" width="300"><param name="wmode" value="transparent" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://flv-mp3.com/i/pic/ump3player_500x70.swf" /><param id="line" name="FlashVars" value="way='+name+'&amp;swf=http://flv-mp3.com/i/pic/ump3player_500x70.swf&amp;w=250&amp;h=37&amp;time_seconds=0&amp;autoplay=1&amp;q=&amp;skin=white&amp;volume=70&amp;comment="'+comment+'" /></object></center>  ';
	}

<a class='link' OnClick='play("music1.mp3", "comment1");'>Play1</a><br>
<a class='link' OnClick='play("music2.mp3", "comment2");'>Play2</a><br>
<a class='link' OnClick='play("music3.mp3", "comment3");'>Play3</a><br>

bratkovsky 28.07.2012 18:14

Спасибо, спасибо и еще раз большое спасибо :) :) :)


Часовой пояс GMT +3, время: 08:59.