2013-07-18 2 views
0

나는 ffmp3 소스 코드를 가지고 있으며 javascript를 사용하여 flashvars 매개 변수 값을 변경하려고 시도했습니다.자바 스크립트로 매개 변수 값 변경

그대로이 실제로 작동
<a id="foo" href="#">Change Radio</a> 

    <object width="205" height="109" bgcolor="#FFFFFF"> 
     <param name="movie" value="ffmp3-config.swf" /> 
     <param name="flashvars" value="Radio1" /> 
     <param name="wmode" value="transparent" /> 
     <param name="scale" value="noscale" /> 
     <embed src="ffmp3-config.swf" flashvars="url=Radio1" width="205" scale="noscale" height="109" wmode="transparent" bgcolor="none" type="application/x-shockwave-flash" /> 
    </object> 

<script type="text/javascript"> 
    var foo = document.getElementById('foo'); 
    foo.onclick = function() { 
     document.getElementsByName('flashvars')[0].value='Radio2'; 
    } 
</script> 
+0

당신은 또한 embed 태그를 변경해야합니다. 그러나 속성을 변경하는 것만으로는 아무 것도하지 않을 것입니다. 새로운 설정을 적용한 새로운 요소를 만들어야합니다. –

+0

사실 그대로 작동합니다. http://jsfiddle.net/adBkH/ 1/ – Sergio

답변

1

요약하면 : 예, Javascript로 HTML 요소 값. 그러나 이것이 당신이 기대하는대로 당신을 도울 수 없다고 생각합니다.

Flashplayer 객체는 처음로드 될 때만 params를 쿼리합니다. 따라서 flashplayer가 실행되는 동안 param을 변경하면 현재 스트림에 영향을 미치지 않을 수 있습니다.

그러나이 또한 해결할 수 있습니다

  • 어느 곳 모두 사용 가능한 개체를 첫 페이지로드 (알 수 없음) 동안, false로 자동 재생 설정, 필요에 따라/숨기기 취소 객체를 숨기고, 자바 스크립트를 사용하여 시작을 트리거 .

  • 자바 스크립트를 사용하여 flashvars 요소를 변경하고 필요에 따라 "완료"Flashplayer 개체를 동적으로 생성 할 수 있습니다.

  • 는 직접 ... 대신 PARAMS

  • 의, flashplayers URL을 수정 창조적 :

0

(here을 확인하지 않음) :

내가 지금까지 들어 왔지만 운이. Flash 객체가 이미 렌더링되어 변경된 값을 사용하지 않을 수 있으므로 값을 변경 한 후 해당 객체를 "다시로드"해야합니다. 마법처럼

document.getElementsByName("flashvars")[0].value = 'newvalue'; 
1

작품은, 코드

하지만 문제 잘못된 것은 값이 변경되지 않는 것이 아니다,하지만 플래시 객체는 변화에 대해 알고하지 않습니다. 단지 페이지로드시 인스턴스를 생성하고 더 이상 html 코드와 링크가 없습니다. 내가 생각하는 전체 객체 블록을 다시 작성해야 할 것이다. (document.write로, 또는 jquery 나 다른 라이브러리를 사용하여 자신에게 친절하고 싶다면)