actionscript 3 - एक एयर नेटिव एक्सटेंशन से एक स्ट्रिंग रिटर्निंग




actionscript-3 air (3)

आप किसी भी ऑब्जेक्ट को वापस लौटा सकते हैं जिसे देशी कोड में FREObject के रूप में प्रदर्शित किया जा सकता है। इसमें वास्तव में किसी एक्शन स्क्रिप्ट या एक्शन स्क्रिप्ट आदिम डेटा प्रकार शामिल हैं इसमें चीजें शामिल हैं: इंट, स्ट्रिंग, ऐरे, बिटमैपडेटा, बाइटअरे आदि।

उदाहरण के लिए, 0 - 3 के मूल मूल्यों के साथ लंबाई 4 की एक रिटर्न सरणी बना देता है:

FREObject returnAnArray( FREContext cts, void* funcData, uint32_t argc, FREObject argv[])
{
    FREObject returnArray = NULL;
    FRENewObject((const uint8_t*)"Array", 0, NULL, &returnArray, nil );
    FRESetArrayLength( returnArray, 4 );

    for ( int32_t i = 0; i < 4; i++)
    {
        FREObject element;
        FRENewObjectFromUint32( i, element );
        FRESetArrayElementAt( returnArray, i, element );
    }
    return returnArray;
}

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

अधिक जानकारी के लिए यहां दस्तावेज़ीकरण के ढेर हैं:

http://help.adobe.com/en_US/air/extensions/index.html

क्या आपके मूल कोड से एक स्ट्रेट वापस करना संभव है? यह एक पूर्णांक या एक बूलीयन वापस करने के लिए अपेक्षाकृत सीधे आगे है, लेकिन आप एक्टस्क्रिप्ट में एक अधिक जटिल संरचना कैसे वापस करते हैं?


समाप्त प्रक्रिया से लौटें मूल्य एक int लिए सीमित है लेकिन आप डेटा को stdout पर लिख सकते हैं और इसे अपने एआईआर एप्लीकेशन में पढ़ सकते हैं:

p = new NativeProcess();
p.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onOutputData);

private function onOutputData(evt:ProgressEvent):void {
    var outputData:String = p.standardOutput.readUTFBytes(p.standardOutput.bytesAvailable);
    trace(outputData);
}

StandardOutput आइडियाआइटआउट इंटरफ़ेस जैसे बाइटएरे , ताकि आप इससे किसी भी बुनियादी प्रकार पढ़ सकते हैं। मूल प्रसंस्करण डॉक्स भी देखें।


जावा उदाहरण

सरणी लौट रहा है

FREObject stringElement = FREObject.newObject("String element value"); 
FREArray array = FREArray.newArray( "String", 1, false ); 
array.setObjectAt( 0, stringElement );
//now you can return array to AS3

अधिक जानकारी http://help.adobe.com/en_US/air/extensions/WS982b6f491d178e6d6565d9b1132a79a012f-7ff8.html

JSON का उपयोग करने पर भी विचार करें

JSONObject jsonObject = new JSONObject();

try
{
    jsonObject.put("messgae", "Hello");
    jsonObject.put("name", "John");
}
catch (JSONException e)
{
}

FREObject jsonString FREObject.newObject(jsonObject.toString());
//now you can return jsonString to AS3