2009-11-04 24 views
10

एक्शनस्क्रिप्ट एक [रिमोट क्लास] मेटाडाटा टैग का समर्थन करता है जिसका प्रयोग ब्लज़ेड्स में किया जाता है ताकि जावा से ब्लेज़डीएस तक एमएसएफ बाइनरी ऑब्जेक्ट्स के लिए डेटा बाध्यकारी संकेत प्रदान किया जा सके।फ्लेक्स एक्शनस्क्रिप्ट में [रिमोट क्लास] कैसे काम करता है मैं इसे कस्टम डेटा-बाइंडिंग के लिए उपयोग कर सकता हूं?

उदाहरण के लिए:

जावा: पैकेज नमूना;

public class UserInfo 
{ 
    private String userName; 

    public String getUserName() 
    { 
     return userName; 
    } 

    public void setUserName(String value) 
    { 
     userName = value; 
    } 
} 

Actionscript:

[Bindable] 
[RemoteClass(alias="sample.UserInfo")] 
public class UserInfo 
{ 
    public var userName:String=”"; 
} 

वास्तव में किस प्रकार [RemoteClass] BlazeDS ढांचे में कार्यान्वित किया जाता है और आप उस व्यवहार को ओवरराइड और एक कस्टम डेटा-बाइंडिंग दूरस्थ ढांचा प्रदान कर सकता है (उदाहरण के लिए एक JSON संदेश गुजरने वाली प्रणाली) कि आप एक्शनस्क्रिप्ट [बाइंडेबल], [रिमोट क्लास] कक्षा से जुड़ सकते हैं?

उत्तर

19

[RemoteClass (उर्फ = "com.example.MyClass")] flash.net.registerClassAlias() फोन करने के लिए एक फ्लेक्स आशुलिपि है) आप कॉल कर सकते हैं:

getClassByAlias (उपनामनाम: स्ट्रिंग): कक्षा उस वर्ग को देखता है जिसे पहले रजिस्टर क्लासअलीस() विधि में कॉल के माध्यम से पंजीकृत उपनाम था।

से जावा के रूप में आप aliased वर्ग के नाम को पुनः प्राप्त करने की जरूरत है बाहर जाने वाले एन्कोडिंग के लिए, आपको लगता है कि द्वारा बुला flash.utils.describeType() करते हैं और गुण, गुण, वस्तु के तरीकों क्वेरी करने के लिए अपने Actionscript वस्तु के वर्ग पर "प्रतिबिंब" का उपयोग कर सकते हैं।

उदाहरण के लिए ObjectCodec.as लिए निम्न कोड स्निपेट का उपयोग करके उर्फ ​​विशेषता पुनः प्राप्त करने लगता है "@":

override protected function encodeComplex(o:Object, b:IBinary, context:IContext=null):void 
{ 
     var desc:XML = describeType(o); 
     var classAlias:String = [email protected]; 
     //... 
} 
+0

एडोब की साइट पर अब 'registerClassAlias' विधि पर जानकारी नहीं है; अनुपलब्ध दस्तावेज का खंडन करते हुए [एडोब मंचों पर एक पोस्ट] (http://forums.adobe.com/thread/1012207?start=0&tstart=0) है। – supervacuo

+0

@supervacuo: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/package.html#registerClassAlias%28%29 –

2

[रिमोट क्लास] केवल फ्लेक्स पक्ष पर उपयोग किया जाता है। यह सब वास्तव में करता है flash.net.registerClassAlias() फ़ंक्शन को स्थानीय ऑब्जेक्ट और रिमोट क्लास नाम के बीच मैपिंग सेट करने के लिए कॉल करता है।

public function registerClassAlias(aliasName:String, classObject:Class):void 

क्रम में उन पंजीकृत उर्फ ​​वर्गों तक पहुंचने के लिए (एक कस्टम JSON डेटा क्रमबद्धता ढांचे लिखने के लिए:

+0

तो Flash.net.registerClassAlias ​​() सूची तक पहुंचने का कोई तरीका है। मैं जेएसओएन संदेशों का उपयोग करके अपना खुद का कस्टम रिमोटिंग लिखने की कोशिश कर रहा हूं, इसलिए मैं फ्लेक्स के निर्माता/उपभोक्ता या आईडीटाइन इनपुट, आईडीटाऑटपुट इंटरफेस का उपयोग नहीं कर रहा हूं। मुझे रिमोट जावा क्लास नाम से फ्लेक्स क्लास देखने और इसे बनाने में सक्षम होना चाहिए। – Dougnukem

2

आप को देखने के लिए क्या कोड उत्पन्न होता है -keep-generated-actionscript संकलक तर्क इस्तेमाल कर सकते हैं और वास्तव में यह कैसे काम करता है।

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

  • कोई संबंधित समस्या नहीं^_^