मुझे एक बदसूरत समस्या है। मैं दो स्ट्रिंग चर (className और staticMethod) एक वर्ग का नाम की दुकान है और यह स्थिर विधि मैं फोन कदम उठाने होंगे:एएस 3: एक स्थिर वर्ग विधि को कॉल करें - कक्षा और विधि नाम स्ट्रिंग हैं
package {
public class Foo {
public static function bar():void {trace('Foo.bar() was called.');}
}
}
यह सिर्फ पूरी तरह से काम करता है:
package {
import flash.display.Sprite;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
public class ClassPlay extends Sprite {
public function ClassPlay() {
new Foo();
var className:String = 'Foo';
var staticMethod:String = 'bar';
var classClass:Class = getDefinitionByName(className) as Class;
try {
classClass[staticMethod]();
} catch (e:Error) {}
}
}
}
इस विषय वर्ग है। समस्या जब तुम बाहर टिप्पणी इस (9) पंक्ति:
// new Foo();
इस लाइन यह एक अपवाद के साथ बाहर निकल जाता है बिना:
ReferenceError: Error #1065: Variable Foo is not defined.
कैसे मुझे लगता है कि इन्स्टेन्शियशन के बिना यह कर सकता है? यदि यह असंभव है, तो स्ट्रिंग चर से कक्षा को तुरंत चालू करने का कोई तरीका है? या अगर यह अभी भी एक बुरा अभ्यास है, तो आप यह कैसे करेंगे? (मुझे उन दो अज्ञात स्ट्रिंग चर के साथ काम करना है।)
अग्रिम धन्यवाद।
एएस 3 में निर्भरता इंजेक्शन का उपयोग करते समय यह भी एक आम समस्या है। अन्य विकल्पों के लिए, http://www.springactionscript.org/docs/reference/html/Class-inclusion.html देखें (नोट: साइट अब नीचे है, लेकिन अंततः वापस आनी चाहिए)। –
लिंक के लिए बहुत बढ़िया धन्यवाद;) साइट फिर से है। – itarato