एक्शनस्क्रिप्ट एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है जिसका मुख्य उपयोग एडोब फ्लैश प्लेटफॉर्म पर एप्लिकेशन और गेम विकसित करने के लिए किया जाता है। यह फ्लैश मल्टीमीडिया वातावरण के साथ निकटता से जुड़ी हुई है, जिससे डेवलपर्स को समृद्ध इंटरनेट एप्लिकेशन, इंटरैक्टिव एनिमेशन और गतिशील वेब सामग्री बनाने की अनुमति मिलती है। हालांकि फ्लैश के पतन के साथ यह काफी हद तक अप्रचलित हो गई है, लेकिन इसने 2000 के दशक की शुरुआत में वेब प्रौद्योगिकियों के विकास में महत्वपूर्ण भूमिका निभाई।
एक्शनस्क्रिप्ट का निर्माण 1990 के दशक के अंत में मैक्रोमीडिया (बाद में एडोब द्वारा अधिग्रहित) द्वारा फ्लैश के लिए एक स्क्रिप्टिंग भाषा के रूप में किया गया था। पहला संस्करण, एक्शनस्क्रिप्ट 1.0, 1999 में फ्लैश 5 के साथ जारी किया गया था। वर्षों के दौरान, विभिन्न संस्करण पेश किए गए, जिससे 2006 में एक्शनस्क्रिप्ट 3.0 आया, जिसने महत्वपूर्ण सुधार किए, जिसमें एक अधिक संरचित ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग मॉडल और प्रदर्शन में सुधार शामिल थे।
HTML5, CSS3 और जावास्क्रिप्ट प्रौद्योगिकियों के उदय के साथ, फ्लैश और एक्शनस्क्रिप्ट का उपयोग नाटकीय रूप से घट गया है। एडोब ने 31 दिसंबर 2020 को फ्लैश प्लेयर के लिए आधिकारिक समर्थन समाप्त कर दिया, जिससे आधुनिक वेब विकास में एक्शनस्क्रिप्ट की प्रासंगिकता समाप्त हो गई। हालांकि, कुछ विरासती एप्लिकेशन अभी भी पुराने सिस्टम पर चलते हैं और विशिष्ट उद्योगों द्वारा बनाए रखे जाते हैं।
एक्शनस्क्रिप्ट कई प्रोग्रामिंग भाषाओं से प्रभावित हुई है, मुख्य रूप से जावास्क्रिप्ट, इसके इवेंट-ड्रिवन मॉडल और सिंटैक्स समानताओं के कारण। यह जावा और C# जैसी भाषाओं से भी मिलती-जुलती है, विशेष रूप से ऑब्जेक्ट-ओरिएंटेड संरचनाओं के संदर्भ में। एक्शनस्क्रिप्ट पर आधारित कई फ्रेमवर्क, जैसे कि एडोब फ्लेक्स, एंटरप्राइज एप्लिकेशन विकसित करने के लिए फ्लैश प्लेटफॉर्म की क्षमताओं को समृद्ध करते हैं।
ऐतिहासिक रूप से, एक्शनस्क्रिप्ट का व्यापक रूप से समृद्ध इंटरनेट एप्लिकेशन (RIAs), ऑनलाइन गेम, इंटरैक्टिव वेब अनुभव और शैक्षिक उपकरणों के लिए उपयोग किया गया था। डेवलपर्स अक्सर इसे दृश्य एनिमेशन बनाने और वेबसाइटों में मल्टीमीडिया तत्वों को एकीकृत करने के लिए उपयोग करते थे, जो आधुनिक HTML5-आधारित फ्रेमवर्क के आगमन से पहले विशेष रूप से लोकप्रिय था।
एक्शनस्क्रिप्ट ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के सिद्धांतों का पालन करती है। कक्षाएँ, विरासत, और संकुचन कोड को कुशलतापूर्वक संरचना देने के लिए मौलिक हैं।
class Animal {
public var name:String;
public function Animal(name:String) {
this.name = name;
}
public function speak():void {
trace("I am a " + name);
}
}
var dog:Animal = new Animal("Dog");
dog.speak(); // आउटपुट: I am a Dog
एक्शनस्क्रिप्ट का इवेंट मॉडल डेवलपर्स को उपयोगकर्ता इंटरैक्शन को आसानी से संभालने की अनुमति देता है। इवेंट लिस्नर्स को ऑब्जेक्ट्स में जोड़ा जा सकता है ताकि क्लिक, कीबोर्ड इनपुट, और अधिक जैसे इवेंट्स को प्रबंधित किया जा सके।
button.addEventListener(MouseEvent.CLICK, onClick);
function onClick(event:MouseEvent):void {
trace("Button Clicked!");
}
एक्शनस्क्रिप्ट में वेरिएबल्स को मजबूत टाइप किया जा सकता है, जिससे डेवलपर्स को यह परिभाषित करने की अनुमति मिलती है कि एक वेरिएबल में कौन सा डेटा प्रकार संग्रहीत किया जा सकता है, जो रनटाइम त्रुटियों को कम करने में मदद करता है।
var score:int = 0; // score केवल पूर्णांक मान रख सकता है
एक्शनस्क्रिप्ट में अंतर्निहित XML हैंडलिंग सुविधाएँ होती हैं, जो XML डेटा को आसानी से पार्स और संशोधित करने की अनुमति देती हैं।
var xmlData:XML = <note><to>Tove</to><from>Jani</from></note>;
trace(xmlData.to); // आउटपुट: Tove
एक्शनस्क्रिप्ट गणितीय गणनाओं, दिनांक संशोधन, और स्ट्रिंग संचालन जैसे कार्यों को करने के लिए विभिन्न अंतर्निहित फ़ंक्शन प्रदान करती है।
var pi:Number = Math.PI; // Pi का मान प्राप्त करना
trace(Math.ceil(2.3)); // आउटपुट: 3
हालांकि एक्शनस्क्रिप्ट मजबूत टाइप की गई है, यह गतिशील टाइपिंग का भी समर्थन करती है, जिससे डेवलपर्स को बिना स्पष्ट रूप से अपने प्रकारों की घोषणा किए वेरिएबल्स को परिभाषित करने की अनुमति मिलती है।
var message:* = "Hello";
message = 42; // गतिशील टाइपिंग के कारण अनुमति है
एक्शनस्क्रिप्ट कोड फ्लैश प्लेयर वातावरण के भीतर निष्पादित होता है, जो रनटाइम निष्पादन को संभालता है और एप्लिकेशन के लिए कोड की व्याख्या करता है।
एक्शनस्क्रिप्ट कक्षा विरासत और इंटरफेस का समर्थन करती है, जिससे जटिल पदानुक्रमिक संबंध और डिज़ाइन सिद्धांतों की अनुमति मिलती है।
class Dog extends Animal {
public override function speak():void {
trace("Woof! I am a " + name);
}
}
var myDog:Dog = new Dog("Buddy");
myDog.speak(); // आउटपुट: Woof! I am a Buddy
एक्शनस्क्रिप्ट में नियमित अभिव्यक्तियाँ जटिल स्ट्रिंग पैटर्न मिलान और संशोधन की अनुमति देती हैं।
var regex:RegExp = /[a-z]+/g;
var result:Array = "Hello World".match(regex);
trace(result); // आउटपुट: Hello, World
एक्शनस्क्रिप्ट त्रुटि हैंडलिंग के लिए try-catch ब्लॉकों का उपयोग करती है, जिससे डेवलपर्स को अपवादों को सुचारू रूप से पकड़ने और प्रबंधित करने की अनुमति मिलती है।
try {
var value:int = parseInt("not a number");
} catch (e:Error) {
trace("Error: " + e.message);
}
एडोब फ्लैश प्रोफेशनल (बाद में एडोब एनिमेट) एक्शनस्क्रिप्ट विकास के लिए मुख्य एकीकृत विकास वातावरण (IDE) था। अन्य लोकप्रिय IDEs में फ्लैशडेवलप और इंटेलिज आईडिया शामिल हैं, जो एक्शनस्क्रिप्ट के लिए समर्थन प्रदान करते हैं।
एक परियोजना विकसित करने में आमतौर पर शामिल होता है:
एक्शनस्क्रिप्ट कोड एडोब फ्लैश प्लेयर रनटाइम वातावरण में निष्पादित होता है, जो SWF फ़ाइलों की व्याख्या और उन्हें अंतिम उपयोगकर्ता उपकरणों पर चलाता है। एक्शनस्क्रिप्ट एप्लिकेशन को निष्पादित करने के लिए उपयोगकर्ता के ब्राउज़र या मशीन में फ्लैश प्लेयर स्थापित होना आवश्यक है।
एक्शनस्क्रिप्ट का मुख्य रूप से निम्नलिखित में उपयोग किया गया:
एक्शनस्क्रिप्ट और जावास्क्रिप्ट दोनों इवेंट-ड्रिवन भाषाएँ हैं, लेकिन जावास्क्रिप्ट अधिक बहुपरकारी हो गई है और अब वेब विकास के लिए एक मानक है, विशेष रूप से Node.js और आधुनिक फ्रेमवर्क जैसे React और Angular के आगमन के साथ।
एक्शनस्क्रिप्ट और C# में ऑब्जेक्ट-ओरिएंटेड विशेषताएँ साझा की जाती हैं; हालाँकि, C# का उपयोग मुख्य रूप से डेस्कटॉप, वेब, और मोबाइल एप्लिकेशन के लिए किया जाता है, विशेष रूप से .NET फ्रेमवर्क के भीतर।
एक्शनस्क्रिप्ट की सिंटैक्स पायथन की तुलना में कम लचीली है, जो सरलता और पठनीयता पर जोर देती है। पायथन ने भी वेब विकास के अलावा विभिन्न प्रकार के अनुप्रयोगों के लिए एक प्रमुख भाषा बन गई है।
जावा की मजबूत टाइपिंग और ऑब्जेक्ट-ओरिएंटेड विशेषताएँ एक्शनस्क्रिप्ट के समान हैं, लेकिन जावा की प्लेटफ़ॉर्म स्वतंत्रता JVM (जावा वर्चुअल मशीन) के माध्यम से एक्शनस्क्रिप्ट की फ्लैश रनटाइम पर निर्भरता के विपरीत है।
रूबी गतिशील है और उत्पादकता के लिए डिज़ाइन की गई है, जबकि एक्शनस्क्रिप्ट वेब पर इंटरैक्टिव सामग्री निर्माण पर अधिक केंद्रित थी।
हालांकि एक्शनस्क्रिप्ट के लिए विशेष रूप से समर्पित स्रोत से स्रोत अनुवाद उपकरण नहीं हैं, लेकिन एक्शनस्क्रिप्ट को जावास्क्रिप्ट या HTML5-आधारित समाधानों में परिवर्तित करने के प्रयास किए गए हैं। CreateJS और Phaser जैसे उपकरण डेवलपर्स को एक्शनस्क्रिप्ट गेम्स को अधिक आधुनिक वेब वातावरण में माइग्रेट करने की अनुमति देते हैं।