2010-10-05 13 views
10

ile yanıp yeniden:Güncelleme dizeyi flashvars ve başka videoyu görmek için dizeyi flashvars değer bağımsız değişkeni güncellemek istiyorum jQuery

<param name='flashvars' value='movieId=1002' /> 

ben ekstra adım ile parametreyi güncelleyerek Firefox'ta çalışması yapabilir öğrendim tüm flaş içeriğinin okunması.

$("param[name=flashvars]").attr("value", "movieId=33"); 
$("embed").attr("flashvars", "movieId=33"); 
$(".root").append($("#video")); 

Ama bu flash içeriğini yenilenmez tarayıcı olarak IE8 çalışmaz. Swfobject.js gibi harici bağımlılıklar olmadan flash içeriğinin nasıl yeniden yükleneceği hakkında herhangi bir fikir var mı?

cevap

0

yerine FlashVar kullanmak yerine, Flash yeni değeri göndermek için ExternalInterface AS3 sınıfını kullanabilirsiniz.

ExternalInterface AS3 & JavaScript

+2

. Yine de Flash'ı yeniden yüklememiz gerekirse ne olur? – momijigari

4

Ben de bu merak ediyorum arasındaki iki yönlü iletişim sağlar. Flashvars üzerinden yeni bir dize göndermeye çalışmıyorum ki değiştirme şansım yok ve sadece flashinterları jQuery ile değiştirerek harici arayüz kullanmak zorunda kalmadan en iyi seçenek.

+0

Ben de bunu arıyorum. – Natim

0

Aslında, neden swfobject.js kullanılmasın?

böyle yaptı:

<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script> 
    <script type="text/javascript" src="js/swfobject.js"></script> 

    <div id="qsound"></div> 

<script type="text/javascript"> 
    if(q.sound) { 
    swfobject.embedSWF("js/dewplayer/dewplayer.swf", "qsound", "60", "20", "9.0.0", false, {'mp3': 'sounds/'+q.sound}, {'wmode': 'transparent'}); 
    $('#qsound').show(); 
} else { 
    $('#qsound').hide(); 
} 
</script> 
3

Eğer flaş değişkenler değiştirebilir ve Flash yeniden yüklemek isterseniz, sadece DOM SWF kaldırıp SWFObject veya kullanarak yeni vars (ile tekrar gömmek gerekir başka bir yöntem fanteziinize uygun olsun!). Flash'ı yeniden olmadan flaş değişkenler değiştirmek isterseniz

, şans bitti: hayır resmen desteklenen bir yolu vardır. Bu durumda, değerlerinizi JavaScript'ten güncelleyen ActionScript yöntemlerini çağırmak için ExternalInterface kullanmalısınız. bildiğim kadarıyla anladığım kadarıyla bir çözüm değildir

5
// update flashvars 
var fv = 'foobar=1'; 

$("object param[name='flashvars']").attr("value", fv); 
$("embed").attr("flashvars", fv); 

// create new object to hold it  
var obj = $("object"); 

// remove existing Flash from DOM 
$("object").remove(); 

// add new HTML to DOM 
$("#mviewer").append(obj.html()); 
+0

İyi cevap - bu benim için çalıştı. Ancak, ben $ ("# mviewer") 'ile son satırı değiştirdiler (obj) ekleyin;' – Eric

+0

benim için çalışmaz. – momijigari

+0

Sen içerecek şekilde (nesnenin * dış * HTML kullanmak gerekir '' ' '' 'etiketi). Örneğin. '' 'Ekleme (obj [0] .outerHTML)'. –