2010-10-05 20 views
10

के साथ फ़्लैश मैं एक और वीडियो देखने के लिए flashvars मान तर्क अद्यतन करने के लिए करना चाहते हैं:अद्यतन flashvars और फिर से लोड jQuery

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

मुझे पता चला मैं अतिरिक्त कदम के साथ पैरामीटर अपडेट करके यह फ़ायरफ़ॉक्स में काम कर सकते हैं कि पूरी फ्लैश सामग्री को पढ़ने के लिए।

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

लेकिन यह IE8 में काम नहीं करता है क्योंकि ब्राउजर फ़्लैश सामग्री को रीफ्रेश नहीं करेगा। Swfobject.js जैसे बाह्य निर्भरताओं के बिना फ़्लैश सामग्री को फिर से लोड करने के तरीके पर कोई विचार?

उत्तर

0

फ्लैशवर्स का उपयोग करने के बजाय, आप फ्लैश पर नया मान भेजने के लिए बाहरी इंटरफेस एएस 3 कक्षा का उपयोग कर सकते हैं।

ExternalInterface AS3 & जावास्क्रिप्ट

+2

यह एक समाधान नहीं है जहां तक ​​मैं समझता हूं। अगर हमें फ्लैश को फिर से लोड करने की ज़रूरत है तो क्या होगा? – momijigari

4

मैं भी इस बारे में उत्सुक हूँ के बीच दो तरह से संचार के लिए अनुमति देता है। मैं एक एसडब्ल्यूएफ में फ्लैशवर्स के माध्यम से एक नई स्ट्रिंग भेजने की कोशिश कर रहा हूं कि मेरे पास बदलने का कोई मौका नहीं है, और बाहरी फ्लिटर का उपयोग किए बिना jQuery के साथ फ्लैशवर्स को बदलना, सबसे अच्छा विकल्प है।

+0

मैं भी इसकी तलाश कर रहा हूं। – Natim

0

वास्तव में, swfobject.js का उपयोग क्यों नहीं करें?

मैं इस तरह किया:

<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

आप फ़्लैश वार्स बदल सकते हैं और फ्लैश को फिर से लोड करना चाहते हैं, तो आप सिर्फ डोम से SWF निकालकर उसे दोबारा एम्बेड अपने नए वार्स (SWFObject या उपयोग करने के साथ करना चाहिए जो भी अन्य विधि आपकी कल्पना के अनुरूप है!)।

यदि आप फ़्लैश को फिर से लोड किए बिना फ्लैश वर्र्स बदलना चाहते हैं, तो आप भाग्य से बाहर हैं: कोई आधिकारिक रूप से समर्थित तरीका नहीं है। इस मामले में, आपको ExternalInterface का उपयोग एक्शनस्क्रिप्ट विधियों को कॉल करने के लिए करना चाहिए जो जावास्क्रिप्ट से आपके मान अपडेट करते हैं।

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

अच्छा जवाब - यह मेरे लिए काम किया। हालांकि, मैंने '$ (" # mviewer ") के साथ अंतिम पंक्ति को स्विच किया है। संलग्न करें (ओबीजे);' – Eric

+0

मेरे लिए काम नहीं करता है: – momijigari

+0

आपको ऑब्जेक्ट के * बाहरी * एचटीएमएल का उपयोग करने की आवश्यकता है ('' ' '' टैग)। जैसे '' 'संलग्न (obj [0] .outerHTML)' ''। –

संबंधित मुद्दे