actionscript 3 - कुंजी कोड को एक्शन स्क्रिप्ट 3 में स्ट्रिंग में कनवर्ट करें




actionscript-3 flash (2)

मैं डेस्कटॉप रनटाइम के लिए Adobe AIR 3.4 का उपयोग करके Flash CS6 में एक्शन स्क्रिप्ट 3 का उपयोग कर रहा हूं।

मेरे पास पूर्णांक मानों के रूप में परिभाषित कुछ मुख्य कोड हैं (उदाहरण नीचे यूपी के लिए 38 और डी के लिए 68 रिटर्न)

var KEY_UP:uint = Keyboard.UP;
var KEY_D:uint = Keybaord.D;

हालांकि, मुझे कुंजी को उपयोगकर्ता को चाबियाँ प्रदर्शित करने की आवश्यकता है (और जाहिर है कि पूर्णांक मान प्रदर्शित नहीं किया जा सकता)

मैं इन कीबोर्ड मानों को स्ट्रिंग मान जैसे "अप" या "डी" (38 और 68 के बजाय) में कैसे रूपांतरित कर सकता हूं?


आप वर्डलाइन टाइप के साथ प्रॉपर्टी नाम प्राप्त कर सकते हैं, और स्ट्रिंग जैसे कि Keyboard["UP"] रूप में संपत्ति का उपयोग कर सकते हैं।

तो, आप तालिका बना सकते हैं उदाहरण के लिए

import flash.utils.describeType;

function getKeyboardDict():Dictionary {
    var keyDescription:XML = describeType(Keyboard);
    var keyNames:XMLList = keyDescription..constant.@name;

    var keyboardDict:Dictionary = new Dictionary();

    var len:int = keyNames.length();
    for(var i:int = 0; i < len; i++) {
        keyboardDict[Keyboard[keyNames[i]]] = keyNames[i];
    }

    return keyboardDict;
}

var keyDict:Dictionary = getKeyboardDict();

trace(keyDict[Keyboard.UP]); //UP
trace(keyDict[Keyboard.SHIFT]); //SHIFT

अगर आप हेक्से के साथ ओपनएफएल का उपयोग कर रहे हैं, तो आप openfl/ui में Keyboard.hx openfl/ui लिए जा सकते हैं और स्ट्रिंग डिक्शनरी के लिए एक कुंजीकोड उत्पन्न करने के लिए फ़ाइल की सामग्री पर एक टेक्स्ट एडिटर (जैसे विम या जीएडिट) में एक रीजक्सपी का उपयोग कर सकते हैं।

इसका प्रयोग स्विच बनाने के लिए करें:

:%s/\([A-Z_0-9]*\)\ =\ \([0-9]*\)/case \2\: return "\1"/g