actionscript 3 - Pass data between embedded SWF and Flex -
SWFLoader के साथ एम्बेडेड SWF ऑब्जेक्ट के साथ मेरा एक फ्लेक्स प्रोजेक्ट है:
& lt; mx
: SWFLoader id = "mySWFLoader" source = "@ एम्बेड करें ('प्लांट_वॉकिंग। एसडब्ल्यूएफ')" निर्माण समाप्ती = "परसफल ()" / & gt;
परम () फ़ंक्शन mxml फ़ाइल में एम्बेड किया गया है:
& lt; fx: स्क्रिप्ट & gt; & Lt;! [सीडीएटीए [सार्वजनिक समारोह (पूर्ण): शून्य {mySWFLoader.content.addEventListener ("सुविधा चयनित", handleEvent); } सार्वजनिक फ़ंक्शन संभाल ईवेंट (ईवीटी: इवेंट): शून्य {var selectedInfo: स्ट्रिंग = mySWFLoader.content ['itemname']; Textinput.text = selectedInfo; Label.text = selectedInfo; }]] & Gt; & Lt; / fx: स्क्रिप्ट & gt;
एएस 3 में लिखी गई इस SWF ऑब्जेक्ट के अंदर, जब मैं एक ऑब्जेक्ट पर क्लिक करता हूं तो ऐसा होता है:
itemname = ev.object.name; डिस्पैचइवेंट (नया इवेंट ("फीचर सेलेक्टेड", सच है));
यह सुविधा चयनित ईवेंट को कॉल करता है और फिर यह handleEvent फ़ंक्शन को कॉल करेगा। समस्या यह है कि मुझे आइटम नाम पैरामीटर का मान प्राप्त नहीं होता है और, हालांकि पैरामीटर SWF ऑब्जेक्ट में घोषित किया गया है:
public var itemname: String = "परीक्षण";
मुझे रनटाइम पर यह त्रुटि मिलती है:
[फॉल्ट] अपवाद, सूचना = संदर्भ त्रुटि: # 1069 त्रुटि: मुख्य आइटम पर item_name_mxml_Plant_Walking_swf_1661400095 पर नहीं मिला कोई डिफ़ॉल्ट मान नहीं।
क्यों? धन्यवाद
अपने कोड में निम्नलिखित लिखें यह मान देगी।
var चयनित INFO: स्ट्रिंग = evt.itemname;
के बजाय:
var चयनित INFO: स्ट्रिंग = mySWFLoader.content ['itemname']; संपादित करें: यदि ऊपर से काम नहीं किया गया है, तो कस्टम इवेंट की तरह बनाएं:
सार्वजनिक वर्ग फ़ीचरसेलेक्टेडइवेंट इवेंट {सार्वजनिक स्टेटिक वेर FEATURE_SELECTED: स्ट्रिंग = "सुविधा चयनित"; निजी var _itemname: स्ट्रिंग; सार्वजनिक समारोह itemname () प्राप्त करें: स्ट्रिंग {return_itemname} सार्वजनिक फ़ंक्शन फ़ीचर चयन करेंइवेंट (प्रकार: स्ट्रिंग, आइटम नाम: स्ट्रिंग, बुलबुले: बूलियन = गलत, रद्द करने योग्य: बूलियन = गलत) {सुपर (प्रकार, बुलबुले, रद्द करने योग्य); _itemname = itemname; } ओवरराइड पब्लिक फंक्शन क्लोन (): इवेंट {नई फीचर सेलेक्टेड एंवेंट (प्रकार, आइटमनाम, बुलबुले, रद्द करने योग्य); }}
फिर प्रेषण घटना की तरह:
प्रेषणखाना (नया फ़ीचरसेचएटेड (फ़ीचर से चुने गए Event.FEATURE_SELECTED, ev.object.name));
आपको पैरामीटर मान मिलता है जैसे:
सार्वजनिक फ़ंक्शन संभाल ईवेंट (ईवीटी: इवेंट): शून्य {var selectedInfo: String = event.itemname; }
क्षमा करें, किसी वर्तनी की गलती के लिए।
Comments
Post a Comment