2009-07-13 8 views
6

यदि उपयोगकर्ता अपने ब्राउज़र को बंद कर देता है या किसी अन्य पृष्ठ पर जाता है तो फ्लैश में मुझे पता लगाना पड़ता है और फ़्लैश अब और उपलब्ध नहीं है। मैं इसे कैसे प्राप्त करूं?फ़्लैश प्लेयर ब्राउज़र पर अधिसूचित या पृष्ठ को बदलता है (as3)

उत्तर

15

बाहरी इंटरफेसउट.एडएक्सनेटवेन्ट लिस्टनर ("window.onunload", हैंडलॉगआउट, "अनलोड फ्लेक्स");

package 
{ 
    import flash.external.ExternalInterface; 

    public class ExternalInterfaceUtil 
    { 
     public static function addExternalEventListener(qualifiedEventName:String, callback:Function,callBackAlias:String):void 
     { 
      // 1. Expose the callback function via the callBackAlias 
      ExternalInterface.addCallback(callBackAlias, callback); 
      // 2. Build javascript to execute 
      var jsExecuteCallBack:String = "document.getElementsByName('"+ExternalInterface.objectID+"')[0]."+callBackAlias+"()"; 
      var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){"+jsExecuteCallBack+"};}"; 
      // 3. Execute the composed javascript to perform the binding of the external event to the specified callBack function 
      ExternalInterface.call(jsBindEvent); 
     } 
    } 
} 

मुझे याद नहीं है कि मुझे यह कहां से मिला, लेकिन मैंने इसका उपयोग किया है और यह बहुत अच्छी तरह से काम करता है। बेशक सभी ब्राउज़र सहयोग करने जा रहे हैं, लेकिन यह कुछ भी नहीं है ...

+0

यह शानदार रूप से अच्छी तरह से काम करता है। फ्लेक्स प्रोग्राम के अंदर से "जेएस पॉपअप में ओके बटन पर क्लिक करने वाले उपयोगकर्ता" को कैसे सुनते हैं, इस पर कोई विचार है? –

1

आप जो भी खोज रहे हैं उसे प्राप्त करने के लिए आप जावास्क्रिप्ट और फ्लैश के संयोजन का उपयोग कर सकते हैं।

उपयोगकर्ता द्वारा पृष्ठ से दूर जाने पर पता लगाने के लिए जावास्क्रिप्ट का उपयोग करें। ExternalInterface का उपयोग कर अपनी फ्लैश फिल्म में कॉल करने के लिए जावास्क्रिप्ट ईवेंट का उपयोग करें। एक बार आपका कोड कहलाए जाने के बाद, आप ईवेंट को आवश्यकतानुसार संभाल सकते हैं।

+0

बाहरी इंटरफ़ेस मैं संभाल कर सकते हैं .. आप इसे कैसे जावास्क्रिप्ट में जाँच करते हैं? –

+0

जावास्क्रिप्ट में एक विंडो है। ऑनलाइन लोड करें कि आप एक फ़ंक्शन संलग्न कर सकते हैं। दुर्भाग्यवश, कुछ ब्राउज़र हमेशा अनावश्यक ईवेंट को कॉल नहीं करेंगे जब उपयोगकर्ता अतीत में दुरुपयोग के कारण विंडो बंद कर देता है। मुझे पता है कि ओपेरा वास्तव में नहीं है, मैं दूसरों के बारे में निश्चित नहीं हूं। – Powerlord

1

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

एक अशक्त जांच जोड़ने के लिए एक लाइन बदलकर सुधारा जा सकता है कि:

var jsBindEvent:String = "function(){"+qualifiedEventName+"= function(){if (" + jsExecuteCallBack + ") return "+jsExecuteCallBack+"};}"; 
संबंधित मुद्दे