2010-06-23 21 views
5

में एक ActionScript ईवेंट हैंडलर समारोह इनलाइन परिभाषित कर सकते हैं मैं एक कार्रवाई श्रोता है:कैसे मैं AddEvent श्रोता

myText.addEventListener(TextEvent.LINK,linkClickHandler); 

के रूप में इस के अनुसार, मैं एक ईवेंट हैंडलर समारोह अलग पाठ लिंक घटना को संभालने के लिए लिखने के लिए की जरूरत है।

अब मेरी जरूरत मैं अपने name.ie, जैसे

mytext.addEventListenet(TextEvent.LINK, 
       function(event:TextEvent) {....code comes here....}); 

मैं AS3.What में इस तरह कर सकते हैं कुछ देने का एक ही पंक्ति isntead में है कि समारोह लिखने की ज़रूरत है होगा इस के लिए वाक्य रचना करता है, तो मुमकिन।

इसके अलावा मैं जानना चाहता हूं, गीलेर मैं इवेंट हैंडलर के लिए एक और अतिरिक्त पैरामीटर पास कर सकता हूं जो कि डिफ़ॉल्ट पैरामीटर है।

+0

अस्पष्ट टिप्पणी के लिए क्षमा करें, लेकिन मैं एक बार पढ़ा इस के साथ एक बग नहीं है। क्या कोई इसे सत्यापित कर सकता है? –

+2

विशिष्ट मामले के आधार पर, आपको यह सुनिश्चित करना होगा कि आपके गतिशील फ़ंक्शन को इसे लागू करने से पहले कचरा नहीं मिला है। आमतौर पर, आप फ़ंक्शन को पंजीकृत करने से बेहतर होते हैं। – Glenn

+0

मेरी प्रोबेलम है कि मुझे इवेंट हैंडलर में पैरामीटर पास करने की आवश्यकता है जबकि इसे एक्शन श्रोता में घोषित किया जाए। अगर मैं ऐसा करने में सक्षम हूं, तो मैं कहीं और हैंडलर को परिभाषित कर सकता हूं। –

उत्तर

4

आपका कोड काम करेगा। बस फ़ंक्शन पर रिटर्न प्रकार की आवश्यकता है।

संपादित करें: एक साधारण प्रतिनिधि वर्ग:

public class Delegate 
{ 

    public var cb:Function; 
    public var args:Array; 

    public function Delegate(cb:Function, ...args) 
    { 
     this.cb = cb; 
     this.args = args; 
    } 

    public static function create(cb:Function, ...args):Function { 
     var functionProxy:Delegate = new Delegate(cb, args); 
     return functionProxy._create; 
    } 

    public function _create(e:Object=null):void { 
     var params:Array = new Array(); 
     if(e) { 
      params.push(e); 
     } 

     for each (var o:Object in args[0]) { 
      params.push(o); 
     } 
     cb.apply(null, params); 
    } 

} 
+0

क्या मैं कार्रवाई श्रोता –

+2

में घोषित करते समय फ़ंक्शन में एक अतिरिक्त पैरामीटर पास कर सकता हूं आपको एक प्रतिनिधि वर्ग की तरह कुछ करने की आवश्यकता होगी: http://www.actionscript.org/resources/articles/205/1/The-Delegate- कक्षा/Page1.html। – Glenn

+0

यह एक अच्छा संदर्भ है। धन्यवाद दोस्त। इसके अलावा कोड भी इनलाइन काम किया। अब मेरे पास दो अच्छे विकल्प हैं। कूल –

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