विशेष पाठ ब्लॉक. मैक्रोमीडिया फ़्लैश एमएक्स - पहला चरण


व्याख्यान सामग्री, गृहकार्य और परीक्षण
दूरस्थ पाठ्यक्रम "इलेक्ट्रॉनिक स्कूल मैक्रोमीडिया फ्लैश एमएक्स"
कंप्यूटर विज्ञान शिक्षकों के लिए रूसी साप्ताहिक कार्यप्रणाली समाचार पत्र। प्रकाशन गृह "फर्स्ट ऑफ़ सितंबर" संख्या 42 (2003)
"हिट्स ऑफ़ रोबोटलैंड" पैकेज से "नियम" कार्यक्रम का एक एनालॉग
मैक्रोमीडिया फ़्लैश वातावरण में।"

मुद्रित प्रकाशन

इलेक्ट्रॉनिक स्कूल मैक्रोमीडिया फ़्लैश एमएक्स
III पाठ्यक्रम: मैक्रोमीडिया फ्लैश एमएक्स में प्रोग्रामिंग के बुनियादी सिद्धांत
मॉड्यूल IV: कमांड के साथ। कार्यक्रम "नियम"
एक्शनस्क्रिप्ट भाषा

एक्सप्रेस मॉड्यूल योजना:
  • आदेश के साथ
  • "हिट्स ऑफ़ रोबोटलैंड" पैकेज से "नियम" प्रोग्राम का फ़्लैश डुप्लिकेट।

आदेश के साथ

प्रोग्राम कोड (स्क्रिप्ट) में ऑब्जेक्ट का उपयोग करते समय, यह नोटिस करना आसान है कि एक छोटे स्क्रिप्ट ब्लॉक में भी एक ही ऑब्जेक्ट का नाम बार-बार दोहराया जाता है। ऐसी पुनरावृत्ति विशेष रूप से अक्सर तब होती है जब कुछ व्यक्तिगत वस्तुओं, उदाहरण के लिए वस्तुओं का उपयोग किया जाता है गणित, ऊपरी स्तर से संबंधित। उदाहरण के लिए, निम्नलिखित कोड काफी सामान्य है:

ए = गणित.पीआई * आर * आर; x = r * Math.cos(Math.PI); y = r * Math.sin(Math.PI/2);

यहाँ वस्तु है गणितबार-बार होता है, जिससे स्क्रिप्ट को समझना मुश्किल हो जाता है। यदि स्क्रिप्ट ब्लॉक को with कमांड का उपयोग करके कोष्ठक में संलग्न किया गया है तो इस प्रविष्टि को बहुत सरल बनाया जा सकता है। फिर, इस स्क्रिप्ट ब्लॉक के भीतर, एक्शनस्क्रिप्ट दुभाषिया निर्दिष्ट ऑब्जेक्ट तक पहुंच जाएगा। अब कोड को इस प्रकार पुनः लिखा जा सकता है:

(गणित) के साथ ( a = PI * r * r; x = r * cos(PI); y = r * syn(PI/2); )

आइए सामान्य कमांड प्रारूप पर एक नज़र डालें:

(ऑब्जेक्ट) के साथ (
कथन(ओं);
}

वस्तु- एक्शनस्क्रिप्ट ऑब्जेक्ट या मूवी क्लिप का एक उदाहरण।

कथन- घुंघराले ब्रेसिज़ में संलग्न एक कमांड या कमांड का समूह।

आइए एक और उदाहरण देखें, जिसमें वस्तु का उपयोग किया गया है मूवी क्लिपकुछ अन्यमूवीक्लिप का नाम दिया गया:

(someOtherMovieClip) के साथ ( _x = 50; _y = 100; getoAndStop(3); )

निम्नलिखित स्क्रिप्ट अंश दिखाता है कि पिछला उदाहरण with कमांड का उपयोग किए बिना कैसे लिखा जा सकता है:

someOtherMovieClip._x = 50; someOtherMovieClip._y = 100; someOtherMovieClip.gotoAndStop(3);

कई प्रासंगिक क्षेत्रों में जानकारी तक पहुंचने के लिए नेस्टेड कमांड का उपयोग करना संभव है।

"हिट्स ऑफ रोबोटलैंड" पैकेज से "प्रविल्का" कार्यक्रम का फ्लैश डुप्लिकेट

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

हम एक मूवी क्लिप (पुरस्कार) के कार्य का आयोजन करेंगे, जिसमें "पुरस्कार निधि" रखी जाएगी। यदि उपयोगकर्ता 10 अंक प्राप्त करता है, तो उसका पुरस्कार स्वादिष्ट फलों की एक टोकरी होगी। यदि उपयोगकर्ता के पास पुरस्कार के रूप में 9 या 8 अंक हैं, तो उसे पनीर का एक टुकड़ा मिलेगा, यदि उपयोगकर्ता 6 या 7 अंक प्राप्त करने के लिए "भाग्यशाली" है, तो उसे एक कद्दू मिलेगा, लेकिन यदि वह 5 या 5 से कम अंक प्राप्त करता है , उसे टमाटर मिलेगा!

उन लोगों के लिए जो पांच-बिंदु रेटिंग पसंद करते हैं, आइए उपरोक्त को स्कूल पत्रिका के लिए सुलभ भाषा में अनुवाद करें:

फलों की टोकरी - 5 ;
पनीर का टुकड़ा - 4 ;
कद्दू - 3 ;
टमाटर - 2 .

मूवी क्लिप एक्सेस करते समय हम with कमांड का उपयोग करेंगे।

हमारा दृश्य 11 फ़्रेमों का उपयोग करेगा. पहले 10 फ़्रेम "वर्कशीट" होंगे जिन पर व्याकरण संबंधी त्रुटियों वाले वाक्यांश (इनपुट टेक्स्ट) रखे जाएंगे। आमतौर पर इनपुट फ़ील्ड खाली छोड़ दिए जाते हैं, लेकिन हमारे मामले में उन्हें काम करना चाहिए! प्रत्येक शीट को एक गतिशील फ़ील्ड के साथ प्रोग्राम किया जाएगा। यदि उपयोगकर्ता व्याकरण संबंधी त्रुटि को ठीक नहीं करता है, तो पाठ प्रदर्शित होगा: "आपने त्रुटि को ठीक नहीं किया!"

यह प्रोग्राम दो परतों का उपयोग करता है। निचली परत पृष्ठभूमि है, इसमें स्थिर पाठ "प्रोग्राम करेक्ट" और टोपी के साथ एक ग्राफिक प्रतीक शामिल है।

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

अब सब कुछ क्रम में है. आइए फ़्रेम 1 के लिए एक स्क्रिप्ट लिखें:

रुकना(); fscommand('showmenu', 'false'); मैं = 0;

वीडियो चलाते समय, आपको "मेनू" को अक्षम करना होगा। इस तरह हम उपयोगकर्ता को "एक कदम पीछे" जाने की अनुमति नहीं देंगे। और हम काउंटर को "चालू" भी करते हैं।
आइए फ़्रेम 2-10 के लिए कार्रवाई लिखें:

आइए उदाहरण के तौर पर पहले फ्रेम का उपयोग करके देखें कि बटन कैसे काम करते हैं। आप शेष बटनों को स्वयं प्रोग्राम कर सकते हैं।

चालू (रिलीज़) ( यदि (t1=='सफ़ेद गुलदाउदी'') ( i++; getoAndPlay(2); ) अन्यथा ( i--; z1 = "आपने त्रुटि ठीक नहीं की!"; ) )

अब हम "पुरस्कार निधि" बनाएंगे। आइए बनाएं नया प्रतीकनाम के साथ मूवी क्लिप टाइप करें पुरस्कारजिसमें 5 फ्रेम काम करेंगे. हम क्लिप के सभी फ़्रेमों के लिए एक प्रचार लिखेंगे:

क्लिप का पहला फ्रेम खाली होगा.

दूसरे फ्रेम में हम फलों की एक टोकरी रखेंगे और फ्रेम को एक लेबल देंगे: पाँच.
तीसरे फ्रेम में हम पनीर का एक टुकड़ा रखेंगे और फ्रेम पर एक लेबल लगाएंगे: चार.
आइए चौथे फ्रेम में एक कद्दू रखें और फ्रेम पर एक लेबल लगाएं: तीन.
आइए पांचवें फ्रेम में एक टमाटर रखें और फ्रेम पर एक लेबल लगाएं: दो.

इस कार्यक्रम में, यह सभी "खाद्य विविधता" क्लिपआर्ट97 संग्रह (डब्ल्यूएमएफ फ़ाइलें) से आयात की गई थी। हालाँकि, आप अपना खुद का "पुरस्कार कोष" बना सकते हैं, यह सब पूरी तरह से आपकी कल्पना पर निर्भर करता है।

आइए मंच पर वापस आएं और अंतिम 11वें फ्रेम पर हम अपने द्वारा बनाई गई क्लिप को पुरस्कारों के साथ रखेंगे। मंच पर इसका उच्चारण करना न भूलें। उदाहरण के नाम: पुरस्कार. हम इस फ्रेम पर एक स्क्रिप्ट लिखेंगे, जो काउंटर की सामग्री का विश्लेषण करके, उपयोगकर्ता को "पुरस्कार" देगी:

रुकना(); श = मैं; (_root.priz) के साथ ( यदि (i

वीडियो का परीक्षण करें. और यदि आवश्यक हो, तो इसे डीबग करें।

परीक्षण प्रक्रिया को सरल बनाने के लिए, नाम के साथ अंतिम फ्रेम पर एक गतिशील टेक्स्ट फ़ील्ड बनाएं और इस फ़ील्ड में काउंटर डेटा प्रदर्शित करें। ऐसा करने के लिए, 11वीं फ़्रेम स्क्रिप्ट में दूसरी पंक्ति जोड़ें:

डिबगिंग प्रक्रिया पूरी करने के बाद, इस फ़ील्ड और आपके द्वारा दर्ज की गई लाइन को हटा दें।

होमवर्क: मैक्रोमीडिया फ्लैश एमएक्स में प्रोग्रामिंग की मूल बातें

ओह, हमारे पास कितनी अद्भुत खोजें हैं
आत्मज्ञान की भावना तैयार करें
और अनुभव, कठिन गलतियों का पुत्र,
और प्रतिभाशाली, विरोधाभासों के मित्र,
और मौका, भगवान आविष्कारक।
अलेक्जेंडर सर्गेइविच पुश्किन, "यूजीन वनगिन"

आपका कार्य इस व्याख्यान में प्रस्तुत सामग्री की नकल करते हुए एक वीडियो बनाना है। आप वाक्यांश स्वयं चुन सकते हैं.

आप व्याख्यान सामग्री के साथ संग्रह में वीडियो की "पुरस्कार निधि" बनाने के लिए उपयोग की गई उदाहरणात्मक सामग्री पा सकते हैं। इस संग्रह में WMF प्रारूप में फ़ाइलें हैं। यदि यह पुरस्कार पूल आपकी आवश्यकताओं को पूरा नहीं करता है, तो बेझिझक रचनात्मक बनें और अपनी लाइब्रेरी का उपयोग करें।

अपने पूर्ण किए गए असाइनमेंट को fla प्रारूप में एक फ़ाइल के रूप में सबमिट करें (यदि फ़ाइल का आकार 150 KB से अधिक है, तो कृपया फ़ाइल को संग्रहीत करें) और इसे अपने शिक्षक को भेजें।

मैं कामना करता हूँ कि आप स्वयं मैक्रोमीडिया फ़्लैश एमएक्स सीखने में सफल हों!

इस पृष्ठ पर अनुभाग:

अब तथाकथित के बारे में बात करते हैं विशेष पाठ ब्लॉक,अर्थात्, विशेष कार्य करने वाले टेक्स्ट ब्लॉक के बारे में। हालाँकि, फिलहाल, वे हमारे लिए उपयोगी नहीं होंगे, लेकिन जब हम फ़्लैश वातावरण में प्रोग्राम लिखना शुरू करेंगे तो उनकी आवश्यकता होगी (प्रोग्रामिंग किसके लिए समर्पित है) भाग IVयह किताब)।

इनपुट फ़ील्ड

प्रवेश क्षेत्र -यह एक प्रकार का छोटा टेक्स्ट एडिटर है जिसे विंडोज़ प्रोग्राम विंडो में रखा जाता है और इसे सिंगल या मल्टी-लाइन टेक्स्ट दर्ज करने के लिए डिज़ाइन किया गया है। उसी समय, विंडोज़ स्वयं टेक्स्ट इनपुट का प्रबंधन करता है: हम बस अक्षर टाइप करते हैं, तीर कुंजियों का उपयोग करते हैं, , , पाठ का चयन करें, क्लिपबोर्ड का उपयोग करें, जैसे किसी भी "बड़े" में पाठ संपादक. माइक्रोसॉफ्ट प्रोग्रामर्स ने मानक विंडोज इनपुट फ़ील्ड को वास्तव में सुविधाजनक बनाने के लिए कड़ी मेहनत की है।

फ़्लैश में एक इनपुट फ़ील्ड बनाने के लिए, आपको सबसे पहले अपनी वर्कशीट पर एक नियमित टेक्स्ट ब्लॉक रखना होगा और इसे एरो टूल से चुनना होगा (आपको टेक्स्ट ब्लॉक में कोई टेक्स्ट दर्ज करने की ज़रूरत नहीं है)। इसके बाद, पैनल के ऊपरी बाएँ कोने में खोजें गुणएक छोटी ड्रॉप-डाउन सूची (चित्र 7.4 देखें) और उसमें आइटम का चयन करें इनपुट टेक्स्ट।यदि इसके बाद हम परिणामी टेक्स्ट ब्लॉक को खोलते हैं, तो हम देखेंगे कि चित्र में क्या दिखाया गया है। 7.9.


तो हम क्या देखते हैं? और हम आकार बदलने वाले मार्करों का एक पूरा सेट देखते हैं (यदि हम इनपुट फ़ील्ड बंद कर देते हैं तो भी वे सहेजे जाएंगे)। इसका मतलब है कि हम परिणामी इनपुट फ़ील्ड का ऊर्ध्वाधर आकार भी बदल सकते हैं। और ऊपरी दाएं कोने से आयताकार मार्कर निचले दाएं कोने में चला जाएगा - यह एक संकेत है कि हमारे सामने एक इनपुट फ़ील्ड है।

पैनल दृश्य गुणचयन करने के बाद इनपुट फ़ील्ड चित्र में दिखाया गया है। 7.10. जैसा कि हम देखते हैं, वे वहां प्रकट हुए अतिरिक्त तत्वनियंत्रण जिन पर विचार करने की आवश्यकता है।


सबसे पहले, हमारे द्वारा अभी उपयोग की गई सूची के ठीक नीचे, एक फ़ील्ड दिखाई दी जिसमें हमें एक अद्वितीय निर्दिष्ट करने की आवश्यकता होगी नाम,हमारे द्वारा बनाए गए फ़्लैश इनपुट फ़ील्ड की पहचान करना। वर्कशीट पर बनाए गए प्रत्येक इनपुट फ़ील्ड का एक अद्वितीय नाम होना चाहिए। इस नाम में रूसी और लैटिन वर्णमाला के अक्षर, संख्याएं और अंडरस्कोर शामिल हो सकते हैं, और इसकी शुरुआत किसी अक्षर या अंडरस्कोर से होनी चाहिए।

ट्रैकिंग कार्य इनपुट फ़ील्ड के नीचे एक और ड्रॉप-डाउन सूची है। इनपुट फ़ील्ड के प्रकार का चयन करने के लिए इसका उपयोग करें। इस सूची में चार आइटम उपलब्ध हैं:

? एक लाइन- नियमित एकल पंक्ति इनपुट फ़ील्ड;

? बहुपंक्ति- मल्टीलाइन इनपुट फ़ील्ड(दूसरे शब्दों में, संपादन क्षेत्र);

? मल्टीलाइन नो रैप- एक मल्टी-लाइन इनपुट फ़ील्ड जो स्वचालित रूप से एक लाइन को नहीं तोड़ेगा (हालांकि उपयोगकर्ता अभी भी कुंजी दबाकर एक लाइन को मैन्युअल रूप से तोड़ सकता है );

? पासवर्ड- पासवर्ड प्रविष्टि फ़ील्ड.एक नियमित सिंगल-लाइन इनपुट फ़ील्ड के समान, लेकिन इसमें दर्ज किए गए टेक्स्ट को छुपाता है, इसके बजाय तारांकन की एक स्ट्रिंग प्रदर्शित करता है।

इस सूची के दाईं ओर तीन स्विच बटनों का एक सेट है। उनमें से पहला हम पहले से ही परिचित है - यह उपयोगकर्ता को इनपुट फ़ील्ड में टेक्स्ट का चयन करने की अनुमति देता है:


जैसे कि चित्र में देखा जा सकता है। 7.10, इस बटन को दबाया जाता है और अक्षम किया जाता है, अर्थात इसे अक्षम नहीं किया जा सकता है।

सक्षम होने पर दूसरा स्विच बटन, फ्लैश को पाठ में आए सभी HTML टैग को संसाधित करने का निर्देश देता है:


इसलिए, यदि हम किसी टैग में टेक्स्ट का एक टुकड़ा संलग्न करते हैं<В>.. , फ़्लैश इसे बोल्ड में हाइलाइट करेगा। यदि यह बटन अक्षम है, तो फ्लैश वहां निर्दिष्ट किसी भी HTML टैग के साथ "जैसा है" टेक्स्ट प्रदर्शित करता है।

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

तीसरा टॉगल बटन, सक्षम होने पर, फ़्लैश को इनपुट फ़ील्ड के चारों ओर एक बॉर्डर दिखाने का कारण बनता है, जिससे यह एक मानक विंडोज इनपुट फ़ील्ड जैसा दिखता है:


यदि यह अक्षम है, तो इनपुट फ़ील्ड का स्वरूप "सपाट" होता है।

यदि हमारे द्वारा बनाया गया इनपुट फ़ील्ड मूल इंटरफ़ेस का हिस्सा बनना है, तो इस बटन को अक्षम छोड़ देना सबसे अच्छा है। यदि हम इनपुट फ़ील्ड को उपयोगकर्ता के लिए अधिक परिचित या अधिक दृश्यमान बनाना चाहते हैं, तो हम इस बटन को सक्षम कर सकते हैं।

इन तीन बटनों के दाईं ओर एक इनपुट फ़ील्ड है वर. यह फ़ील्ड एक्शनस्क्रिप्ट वेरिएबल का नाम निर्दिष्ट करती है जिसमें हमारे द्वारा बनाए गए इनपुट फ़ील्ड में दर्ज किया गया टेक्स्ट रखा जाएगा। वेरिएबल कंप्यूटर की मेमोरी में बनाए गए डेटा का एक प्रकार का "स्टोरेज सेल" होता है और इसका एक अद्वितीय नाम होता है जिसके द्वारा इसे विशिष्ट रूप से पहचाना जा सकता है। हम इस वेरिएबल को नाम से संदर्भित कर सकते हैं, इससे डेटा निकाल सकते हैं, या इसमें एक नया मान डाल सकते हैं। वेरिएबल्स पर विस्तार से चर्चा की जाएगी अध्याय 19.

इनपुट फ़ील्ड में अधिकतम अक्षरउपयोगकर्ता द्वारा इसमें दर्ज किए जा सकने वाले वर्णों की अधिकतम संख्या निर्धारित करता है। यदि हम इस संख्या को सीमित नहीं करना चाहते हैं, तो हम वहां मान 0 दर्ज करेंगे (वैसे, यह फ़ील्ड का डिफ़ॉल्ट मान है)।

अब आइए फोंट को लागू करने के विषय पर वापस आएं, लेकिन इनपुट फ़ील्ड के संबंध में (अधिक सटीक रूप से, सभी विशेष टेक्स्ट ब्लॉकों के लिए)। बात यह है कि इस मामले में कोई एम्बेडिंग नहीं की जाती है - फ़्लैश केवल उपयोग किए गए फ़ॉन्ट के नाम संग्रहीत करता है। जब आप एक तैयार छवि चलाते हैं, तो फ़्लैश प्लेयर सबसे पहले क्लाइंट के कंप्यूटर पर इन फ़ॉन्ट्स को ढूंढता है और, यदि मौजूद है, तो टेक्स्ट प्रदर्शित करने के लिए उनका उपयोग करता है। यदि उपयुक्त फ़ॉन्ट नहीं मिलता है, तो प्लेयर वांछित फ़ॉन्ट के निकटतम समान फ़ॉन्ट का उपयोग करता है, जिससे छवि विकृत हो सकती है। और यह हमेशा स्वीकार्य नहीं होता.

लेकिन हम अभी भी फ़्लैश को किसी दिए गए इनपुट फ़ील्ड के लिए निर्दिष्ट फ़ॉन्ट के चयनित वर्णों के विवरण को परिणामी शॉकवेव/फ़्लैश फ़ाइल में एम्बेड करने के लिए बाध्य कर सकते हैं। अब हम देखेंगे कि यह कैसे किया जाता है।

एम्बेड करने के लिए फ़ॉन्ट वर्णों का चयन संवाद बॉक्स में किया जाता है चरित्र एम्बेडिंग(चित्र 7.11)। बटन दबाते ही यह विंडो स्क्रीन पर दिखाई देगी एम्बेडपैनलों गुण(चित्र 7.10 देखें)।


इस विंडो की बड़ी सूची हमें प्रतीकों के संपूर्ण समूहों का चयन करने की अनुमति देगी जिन्हें परिणामी शॉकवेव/फ़्लैश फ़ाइल में एम्बेड किया जाना चाहिए। इसमें काफी कुछ आइटम शामिल हैं; वही जो हमारे लिए उपयोगी होने की गारंटी है, नीचे दिए गए हैं:

? सभी (39477 ग्लिफ़)- इस फ़ॉन्ट के सभी अक्षर 39,477 की मात्रा में हैं। यह आइटम केवल सूचनात्मक उद्देश्यों के लिए प्रदान किया गया है; वास्तव में, शायद ही कोई इसका उपयोग करेगा;

? अपरकेस (27 ग्लिफ़)- बड़े लैटिन अक्षर (27 अक्षर);

? लोअरकेस (27 ग्लिफ़)- छोटे लैटिन अक्षर (27 अक्षर भी);

? अंक (11 ग्लिफ़)- अरबी अंक (11 अक्षर);

?विराम चिह्न [!@#$%…] (52 ग्लिफ़)- विराम चिह्न और विशेष पदनाम (52 अक्षर);

?मूल लैटिन (95 ग्लिफ़)- अधिकांश यूरोपीय भाषाओं के अक्षर (95 अक्षर);

?सिरिलिक (499 ग्लिफ़)- सिरिलिक अक्षर (499 अक्षर)। शायद हमारे मामले में सबसे महत्वपूर्ण बिंदु।

एक नियम के रूप में, इस सूची में एक साथ कई आइटम हाइलाइट किए जाते हैं (यह सही है - संख्याओं के बिना अक्षरों की आवश्यकता किसे है!)। ऐसा करने के लिए, पहले उन सेटों में से पहले आइटम पर क्लिक करें जिन्हें हम चुनना चाहते हैं, फिर कुंजी दबाएं और, इसे पकड़कर, शेष वस्तुओं पर तब तक क्लिक करें जब तक हम सब कुछ नहीं चुन लेते। इसके बाद आप कुंजी जारी कर सकते हैं .

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

खिड़की के बिल्कुल नीचे चरित्र विकल्पवहाँ एक छोटा पाठ क्षेत्र है ग्लिफ़ की कुल संख्या,यह दर्शाता है कि एम्बेडिंग के लिए हमने पहले ही कितने वर्णों का चयन कर लिया है। तो हम समय रहते रुक सकते हैं.

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

डायलॉग बॉक्स में फ़ॉन्ट एम्बेडिंग विकल्प सेट करके चरित्र एम्बेडिंग,बटन दबाना चाहिए ठीक है,उन्हें लागू करने के लिए. यदि आपको इन सेटिंग्स को रद्द करने की आवश्यकता है, तो बटन पर क्लिक करें रद्द करना।

गतिशील पाठ ब्लॉक

अक्सर, सादा, अपरिवर्तित टेक्स्ट दिखाने के बजाय, आप एक्शनस्क्रिप्ट स्क्रिप्ट के आउटपुट को टेक्स्ट फॉर्म में प्रदर्शित करना चाहते हैं। उदाहरण के लिए, ऐसी स्क्रिप्ट कंप्यूलेंट्स वेबसाइट से समाचार, एपोर्टा वेबसाइट से मौसम का पूर्वानुमान और रैम्बलर वेबसाइट से विनिमय दरें निकाल सकती है, निकाले गए डेटा में वर्तमान समय जोड़ सकती है, और यह सब स्क्रीन पर टेक्स्ट के रूप में प्रदर्शित कर सकती है। (वैसे, दिलचस्प विचार...)

यह ठीक उसी स्क्रिप्ट का परिणाम है जिसका उपयोग पाठ को प्रदर्शित करने के लिए किया जाता है। गतिशील पाठ ब्लॉक।(नियमित टेक्स्ट ब्लॉक को अक्सर कहा जाता है स्थैतिक.)शायद ऐसे गतिशील टेक्स्ट ब्लॉक की आवश्यकता इनपुट फ़ील्ड की तुलना में अधिक बार उत्पन्न होती है।

एक डायनामिक टेक्स्ट ब्लॉक एक इनपुट फ़ील्ड की तरह ही बनाया जाता है। एक नियमित टेक्स्ट ब्लॉक बनाएं, इसे एरो टूल से चुनें और इसे पैनल के ऊपरी बाएं कोने में ढूंढें गुणएक छोटी ड्रॉप-डाउन सूची (चित्र 7.4 देखें)। आपको बस इस सूची से एक आइटम का चयन करना होगा गतिशील पाठ.

एक चयनित डायनेमिक टेक्स्ट ब्लॉक एक इनपुट फ़ील्ड (चित्र 7.9 देखें) और पैनल के समान है गुणलगभग वैसा ही दिखेगा जैसा चित्र में दिखाया गया है। 7.10. इसलिए, हम इसमें निहित नियंत्रणों का विवरण नहीं देंगे, बल्कि मौजूदा मतभेदों को इंगित करने तक ही सीमित रहेंगे।

डायनामिक टेक्स्ट ब्लॉक में टेक्स्ट प्रदर्शित करने के लिए समान वेरिएबल का उपयोग किया जाता है। एक्शनस्क्रिप्ट स्क्रिप्ट आउटपुट टेक्स्ट को ऐसे वेरिएबल में रखती है, और फ़्लैश प्लेयर आउटपुट निष्पादित करता है। इस वेरिएबल का नाम उसी इनपुट फ़ील्ड में दर्ज किया गया है जो सूची के नीचे स्थित है, जिसकी मदद से हमने एक नियमित टेक्स्ट ब्लॉक को डायनामिक ब्लॉक में बदल दिया है।

अब मतभेदों के बारे में। इंटरफ़ेस के संदर्भ में वास्तव में केवल एक ही अंतर है और, इसके अलावा, यह पहले से ही हमारे लिए परिचित है। स्विच बटन:


डायनामिक टेक्स्ट ब्लॉक में रखे गए टेक्स्ट को हाइलाइट करने और कॉपी करने की क्षमता अब उपलब्ध है, और यदि हम चाहें तो हम इसे अक्षम कर सकते हैं।

क्षमताओं के संदर्भ में अंतर यह है कि एक गतिशील टेक्स्ट ब्लॉक बनाया जा सकता है स्क्रॉल करने योग्य. एक साधारण गतिशील ब्लॉक में निश्चित रूप से ऐसे आयाम होने चाहिए कि इसमें इसकी सभी सामग्री शामिल हो सके। स्क्रॉल करने योग्य ब्लॉक के लिए, यह आवश्यक नहीं है: क्षेत्रों के समान विंडोज़ संपादन, यह इसमें मौजूद टेक्स्ट को "स्क्रॉल" कर सकता है। स्क्रॉलिंग को नियंत्रित करने के लिए, हमें उपयुक्त एक्शनस्क्रिप्ट स्क्रिप्ट लिखनी होगी - स्क्रॉल करने योग्य टेक्स्ट ब्लॉक में स्क्रॉल बार नहीं होते हैं।

डायनामिक टेक्स्ट ब्लॉक को स्क्रॉल करने योग्य बनाने के लिए, आपको पहले इसे चुनना होगा। इसके बाद आपको स्विच ऑन कर देना चाहिए स्क्रॉलमेन्यू मूलपाठया उसी नाम का टेक्स्ट ब्लॉक संदर्भ मेनू आइटम। यदि कोई टेक्स्ट ब्लॉक वर्तमान में खुला है, तो आप चयन आयत के निचले दाएं कोने में स्थित वर्गाकार हैंडल को दबाए रखते हुए डबल-क्लिक कर सकते हैं . तैयार स्क्रॉल करने योग्य टेक्स्ट ब्लॉक चित्र में दिखाया गया है। 7.12; ध्यान दें कि जिस मार्कर पर हमने क्लिक किया उसने एक काले वर्ग का रूप ले लिया।


"मैक्रोमीडिया फ्लैश 8: एक युवा फाइटर के लिए एक कोर्स" शीर्षक के तहत, इस अद्भुत सॉफ्टवेयर उत्पाद को समर्पित और फ़्लैश प्रौद्योगिकियाँ. आज से, जिन विषयों पर हम फ़्लैश के बारे में बात करते हैं वे अधिक केंद्रित हो जाएंगे। इसलिए, अब से मैं शीर्षक में "युवा लड़ाकू पाठ्यक्रम" शब्द हटा दूंगा। हालाँकि, यह परिस्थिति सामग्री को प्रस्तुत करने के तरीके को बिल्कुल भी प्रभावित नहीं करेगी, जिसका मुख्य लक्ष्य नौसिखिए फ़्लैश डिजाइनरों के कई सवालों के जवाब देना और अनुभवी लोगों को विचार के लिए भोजन देना है।

तो, आज एजेंडे में मैक्रोमीडिया फ्लैश प्रोफेशनल 8 के यूजर इंटरफेस घटक हैं, साथ ही उन्हें कैसे अनुकूलित किया जाए।


मानक फ़्लैश 8 घटक

शक्तिशाली ग्राफिक्स पैकेज मैक्रोमीडिया फ्लैश 8 का नवीनतम संस्करण, उच्च गुणवत्ता वाले एनीमेशन बनाने के लिए डिज़ाइन किए गए टूल, विधियों और टाइमलाइन प्रभावों के एक समूह के अलावा, एक पूर्ण ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा एक्शनस्क्रिप्ट 2.0 और कई घटक (अंतर्निहित) शामिल हैं। मूवी जैसे प्रोग्राम ब्लॉक में)।

हमें घटकों की आख़िर आवश्यकता क्यों है? कई मामलों में, वे एक इंटरैक्टिव एप्लिकेशन विकसित करने की प्रक्रिया को बहुत सरल बनाते हैं। डेटा प्रविष्टि फ़ील्ड और वेबसाइटों पर विभिन्न स्विचों का उपयोग करके, पंजीकरण फॉर्म आसानी से बनाए जा सकते हैं, लोडर का उपयोग करके आप विभिन्न स्रोतों से टेक्स्ट और मल्टीमीडिया डेटा की लोडिंग को नियंत्रित कर सकते हैं, आदि। आज हम फ़्लैश 8 में घटक वर्गों में से एक - उपयोगकर्ता इंटरफ़ेस (यूआई) तत्वों पर एक नज़र डालेंगे।

निस्संदेह, फ़्लैश में सबसे लोकप्रिय वस्तु बटन है। यह फ्लैश में प्रतीक प्रकार और यूआई तत्व दोनों के रूप में मौजूद है। रेडियोबटन, चेकबॉक्स, मेनूबार आदि घटकों का उपयोग कम बार किया जाता है, लेकिन वे किसी भी तरह से कम महत्वपूर्ण नहीं हैं। घटक विंडो को Ctrl+F8 दबाकर या विंडो -> घटक मेनू से कॉल किया जाता है। मुख्य यूआई घटकों के लिए तालिका देखें।

अवयव विवरण
अकॉर्डियन फॉर्म नेविगेटर
चेतावनी पाठ संदेश
बटन सरल बटन
चेक बॉक्स चेक बॉक्स
सम्मिश्रण पटी कॉम्बो सूची
सूची सूची
लोडर लोडर कंटेनर
रेडियो की बटन सलेक्टर स्विच
पाठ क्षेत्र पाठ क्षेत्र
खिड़की एक खिड़की के रूप में कंटेनर

आज, अलर्ट नामक उपयोगकर्ता इंटरफ़ेस तत्व के पैरामीटर सेट करने के उदाहरण का उपयोग करते हुए, हम घटक शैलियों के साथ काम करने के सिद्धांतों को देखेंगे।


घटक गुणों को प्रीसेट करना

अलर्ट घटक आपको उपयोगकर्ता और कंप्यूटर के बीच एक छोटा संवाद व्यवस्थित करने की अनुमति देता है। आइए ऐलिस टॉकिंग प्रोग्राम के समान कुछ कल्पना करें, जो 60 के दशक में बनाया गया था और इसमें एक छोटी सी कृत्रिम बुद्धिमत्ता थी, जिसने पहले पूछे गए प्रश्नों के उत्तरों का उपयोग करके किसी व्यक्ति के साथ बातचीत करना संभव बना दिया था।

सबसे पहले, आइए बटनों पर लेबल बदलें और उनके क्लिक के लिए एक हैंडलर लिखें। उपयोगकर्ता ने किस बटन पर क्लिक किया है, उसके आधार पर एक विशेष संदेश दिखाई देगा। यह सब शैलियों का उपयोग किए बिना हासिल किया गया है। तो, आइए अलर्ट विंडो को कंपोनेंट्स पैनल से एक खाली शीट पर खींचें और इसे सभी आवश्यक सेटिंग्स प्रदान करें। आइए याद रखें कि किसी भी फ़्लैश फ़्ला फ़ाइल में एक लाइब्रेरी होती है (जिसे Ctrl+"L दबाकर कहा जाता है"), जिसमें घटकों के उदाहरण संग्रहीत होते हैं। अलर्ट विंडो भी यहां फिट बैठती है. चूँकि हम नहीं चाहते कि यह हमेशा कार्यक्षेत्र में लटका रहे, इसलिए हम इसे वहां से हटा सकते हैं (बेशक, आर्टबोर्ड से)। लाइब्रेरी में अलर्ट रहेगा.

अब टाइमलाइन पर पहला फ्रेम चुनें, एक्शन सेक्शन (F9) पर जाएं और निम्नलिखित प्रोग्राम कोड लिखें: "import mx.controls.Alert" (अधिक जानकारी के लिए, लिस्टिंग देखें)। कई आवश्यक सेटिंग्स केवल ActionScript का उपयोग करके सेट की जा सकती हैं। अलर्ट विंडो को कोष्ठकों में निर्दिष्ट कई मापदंडों के साथ Alert.show ("टेक्स्ट", "विंडो शीर्षक", "इस्तेमाल किए गए बटन", "विंडो", "क्लिक हैंडलर", "चयनित बटन") प्रक्रिया द्वारा बुलाया जाता है। उपयोग किए गए बटनों के लिए, "अलर्ट.हाँ | अलर्ट.NO" को सिंगल कोट्स में दर्शाया गया है ("ओके" और "रद्द करें" बटन भी हैं), और ईवेंट हैंडलर के लिए - "बटनक्लिक" फ़ंक्शन, जिसे हम लिखेंगे थोड़ी देर बाद। आइए अब अलर्ट घटक गुणों "yesLabel" और "noLabel" का उपयोग करके "YES" और "NO" बटन पर लेबल बदलें। फिर आवश्यक आयाम ("बटनविड्थ" और "बटनहाइट") सेट करें। इष्टतम मापदंडों का चयन करने के लिए, परीक्षण के लिए वीडियो चलाना उपयोगी है - "एंटर" + Ctrl कुंजी। "बटनक्लिक" फ़ंक्शन का तर्क इस प्रकार है: जब "अद्भुत" बटन दबाया जाता है, तो संदेश "इसे ऊपर रखें!" पॉप अप होता है, जब "सो-सो" - "अपनी नाक ऊपर रखें!" परिवर्तनों को प्रभावी करने के लिए, इस फ़ंक्शन का विवरण और अलर्ट घटक की सेटिंग्स को कॉल से पहले अलर्ट.शो प्रक्रिया में शामिल किया जाना चाहिए, जैसा कि सूची में दिखाया गया है:

आयात mx.controls.Alert; अलर्ट.बटनविड्थ=150; चेतावनी.बटनऊंचाई=25; Alert.yesLabel='अद्भुत'; Alert.noLabel='तो-तो...'; बटनक्लिक = फ़ंक्शन(evt)(यदि (evt.detail == अलर्ट.हाँ) (अलर्ट.शो("इसे जारी रखें!", "मैक्रोमीडिया फ़्लैश 8");) यदि (evt.detail == अलर्ट.NO) ( अलर्ट .शो ("अपनी नाक ऊपर रखें!", "मैक्रोमीडिया फ्लैश 8");)) अलर्ट.शो ("क्या चल रहा है, दोस्त?", "मैक्रोमीडिया फ्लैश 8", अलर्ट.हाँ | अलर्ट.नहीं, यह, बटनक्लिक , चेतावनी .हाँ);

इसी तरह, आप उपयोगकर्ता के साथ अधिक जटिल संवाद व्यवस्थित कर सकते हैं।


शैलियों के साथ काम करना

शैलियों का उपयोग किस लिए किया जाता है? मैं अभी समझाऊंगा. फ़्लैश में किसी भी घटक की एक निश्चित रंग योजना, फ़ॉन्ट आकार आदि होता है। लेकिन यदि आप विकसित कर रहे हैं, उदाहरण के लिए, अपनी खुद की वेबसाइट, तो चित्र की अखंडता का उल्लंघन न करने के लिए, आपको साइट के घटकों को "समायोजित" करना होगा। मुझे लगता है कि मुझसे गलती नहीं होगी अगर मैं कहूं कि प्रत्येक फ़्लैश डिजाइनर अपने वीडियो को एक विशेष तरीके से बनाने का प्रयास करता है जो उसके लिए अद्वितीय है। फ़्लैश 8 में शैलियों और थीम के साथ, आप प्रत्येक घटक को अद्वितीय बना सकते हैं। लेकिन आइए बहकावे में न आएं और अभी शैलियों पर ध्यान केंद्रित करें।

फ़ॉर्मेटिंग एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस (स्टाइल्स एपीआई) उपयोगकर्ता को गुण और विधियाँ प्रदान करता है जिनका उपयोग किसी घटक का रंग बदलने और उस पर मौजूद पाठ को प्रारूपित करने के लिए किया जा सकता है। आमतौर पर इतना ही काफी है. फ़्लैश 8 मापदंडों के एक सेट के साथ दो शैलियों के साथ आता है: "हेलो" और "सैंपल", जो क्रमशः हेलोथीम.फ्ला और सैंपलथीम.फ्ला फाइलों में स्थित हैं। यह चित्र Windows 2000/XP में उनका स्थान दिखाता है। यह ध्यान दिया जाना चाहिए कि "नमूना" थीम में कई और गुण हैं, इसलिए घटकों को संशोधित करने के लिए इसका उपयोग करना अधिक उचित है। और यह इस प्रकार किया जाता है:

  1. कमांड फाइल -> इंपोर्ट -> ओपन एक्सटर्नल लाइब्रेरी को कॉल किया जाता है और सैंपलथीम.फ्ला फाइल को डायलॉग बॉक्स में निर्दिष्ट किया जाता है। फिर, आयातित लाइब्रेरी पैनल में, फ्लैश यूआई कंपोनेंट्स2 -> थीम्स -> एमएमडिफॉल्ट चुनें। फिर इस विंडो से आपको वांछित घटक (परिसंपत्तियों) के संसाधनों के साथ फ़ोल्डर को वर्तमान दस्तावेज़ की प्रतीक लाइब्रेरी विंडो में खींचने की आवश्यकता है।
  2. सेटस्टाइल (पैरामीटर, मान) और गेटस्टाइल (पैरामीटर) विधियों का उपयोग करके, आप चयनित शैली के किसी विशेष पैरामीटर का मान सेट या प्राप्त कर सकते हैं।

चूँकि हम अलर्ट घटक के साथ काम कर रहे हैं, हम "अलर्ट एसेट्स" फ़ोल्डर को अपने दस्तावेज़ की प्रतीक लाइब्रेरी में खींच लेंगे। फिर हम "नमूना" थीम के मानक गुणों का उपयोग करेंगे (सूची देखें)।

Global.styles.Alert.setStyle('रंग', 'लाल'); _global.styles.Alert.setStyle('themeColor', 'haloBlue'); _global.styles.Alert.setStyle('backgroundColor', '0xE0C5FE'); _global.styles.Alert.setStyle("fontFamily", "टाइम्स न्यू नॉवेल"); _global.styles.Alert.setStyle('fontSize', '15');

अलर्ट डायलॉग बॉक्स का रंग अब बैंगनी (0xE0C5FE) है और इसका टेक्स्ट अब नीला है, फ़ॉन्ट 15-पॉइंट टाइम्स न्यू रोमन पर सेट है। यह ध्यान दिया जाना चाहिए कि अलर्ट प्रतीक को इस तरह से संशोधित किया गया था, इसलिए परिवर्तन इसके सभी उदाहरणों को प्रभावित करेंगे। सभी हेलो और सैंपल थीम गुणों का विवरण फ़्लैश 8 सहायता में पाया जा सकता है।


यदि यह मेरे लिए पर्याप्त नहीं है तो क्या होगा?

यदि, शैलियों के साथ भी, घटकों की उपस्थिति आपकी सौंदर्य संबंधी आवश्यकताओं को पूरा नहीं करती है, तो आप अपनी खुद की थीम लिखने का प्रयास कर सकते हैं। ऐसा करने के लिए, बस मानक थीम में से किसी एक में आवश्यक घटकों के शेल को संपादित करें या बदलें। ऐसा करने के लिए, हेलोथीम.फ्ला या सैंपलथीम.फ्ला फ़ाइल को एक अद्वितीय नाम के तहत सहेजें, इसे लोड करें, प्रतीक लाइब्रेरी विंडो (विंडो -> लाइब्रेरी या Ctrl+L) पर जाएं, आवश्यक घटक का चयन करें और "संपादित करें" विकल्प चुनें। संदर्भ मेनू में. कुछ यूआई तत्वों में कई भाग होते हैं, इसलिए प्रत्येक भाग को दोबारा बनाकर या फिर से बनाकर उन्हें आसानी से रूपांतरित किया जा सकता है। ऐसे घटक हैं बटन, चेकबॉक्स, कॉम्बोबॉक्स, डेटाग्रिड, रेडियोबटन, आदि। अन्य शेल प्रोग्रामेटिक रूप से तैयार किए जाते हैं। इस मामले में, बदलने के लिए उपस्थितिघटक को स्रोत कोड को संशोधित करने की आवश्यकता होगी। उदाहरण के लिए, यह अलर्ट घटक है। चूँकि एक कस्टम थीम बनाना एक समय लेने वाली प्रक्रिया है, इसलिए हम इसे विस्तार से कवर नहीं करेंगे। कम से कम अभी के लिए। बस इतना ही।

प्रबंधन ने कार्य निर्धारित किया: इसे अद्यतित रखा जाना चाहिए फ़्लैश प्लेयर. स्केल: ~15,000 कंप्यूटर, जिनमें से आधे को वास्तव में एफपी की आवश्यकता होती है।

ऐसा प्रतीत होता है कि समस्या क्या है - हम एक डोमेन नीति बनाते हैं, एमएसआई पैकेज को आगे बढ़ाते हैं और आनंद लेते हैं... लेकिन ऐसा नहीं है! कंपनी की संरचना अत्यधिक वितरित है, अर्थात। 20 कंप्यूटरों पर ~1 एमबीपीएस के चैनल वाले दूरदराज के स्थानों में, राजनेताओं द्वारा 15 एमबी को पुश करना पहले से ही एक समस्या है - सुबह में कर्मचारी कंप्यूटर चालू करते हैं और इसके लोड होने के लिए आधे घंटे तक इंतजार करते हैं जब तक कि सब कुछ डाउनलोड और इंस्टॉल न हो जाए (या बस एक टाइमआउट के कारण बंद हो जाता है)। इस तथ्य का उल्लेख करने की आवश्यकता नहीं है कि ऐसे कार्यालयों में कंप्यूटरों में समय-समय पर डोमेन से बाहर होने की अप्रिय संपत्ति होती है।

हमें एक और समाधान की आवश्यकता थी जो नीतियों की परवाह किए बिना काम करेगा, उपयोगकर्ता पर किसी भी तरह का दबाव नहीं डालेगा, और चैनल का न्यूनतम उपयोग करेगा (कम से कम ताकि हर कोई एक ही समय में डाउनलोड न करे)। स्क्रिप्ट वाले विकल्प भी स्पष्ट कारणों से उपयुक्त नहीं थे।

हमेशा की तरह, Google बचाव में आया: यह पता चला कि आप एक आंतरिक अपडेट सर्वर स्थापित कर सकते हैं और उस पर अंतर्निहित एफपी अपडेटर को कॉन्फ़िगर कर सकते हैं। इस मामले में, आपको केवल ग्राहकों को सेटिंग फ़ाइल वितरित करने की आवश्यकता होगी। कट के अंतर्गत विवरण.

एक अद्यतन सर्वर स्थापित करना

1. हम पाते हैं लाइसेंस समझौता

Adobe को अपने सॉफ़्टवेयर वितरित करने के लिए लाइसेंस अनुबंध की आवश्यकता होती है। आइए उपयोग की शर्तों का उल्लंघन न करें और लाइसेंस प्राप्त करें (सौभाग्य से, यह बिल्कुल भी मुश्किल नहीं है): फ्लैशप्लेयर: एडोब रनटाइम्स / रीडर डिस्ट्रीब्यूशन लाइसेंस समझौता। लाइसेंस एक वर्ष की अवधि के लिए जारी किया जाता है। समाप्ति के बाद, आप दोबारा अनुरोध भेज सकते हैं।

2. वेब सर्वर को ऊपर उठाना

प्लेटफ़ॉर्म कोई मायने नहीं रखता; मेरे मामले में, मैं Win2012 के तहत IIS पर Nth साइट चलाता हूँ। यह व्यावहारिक रूप से किसी भी संसाधन की खपत नहीं करता है, भले ही इस सर्वर के लिए ~3000 कंप्यूटर पहले से ही कॉन्फ़िगर किए गए हों।

सर्वर सेटिंग्स:

  • पोर्ट 80, 443 (क्रमशः http, https) के माध्यम से पहुंच।
    पहले की आवश्यकता है, वास्तव में, डाउनलोड करने के लिए, दूसरा एफपी वर्तमान संस्करण के एक्सएमएल संस्करण के लिए जाएगा।
  • वैध https प्रमाणपत्र.
    मैंने कॉर्पोरेट रूट वन पर आधारित एक प्रमाणपत्र जारी किया, जो डिफ़ॉल्ट रूप से सभी मशीनों पर मौजूद होता है।
  • निर्देशिका लिस्टिंग।
    मैंने इसके बिना काम की जाँच नहीं की - दस्तावेज़ीकरण पूछता है, मैंने इसे लिखित रूप में करने का निर्णय लिया।
मैं सर्वर की स्थापना के बारे में विस्तार से नहीं बताऊंगा।

स्पष्टता के लिए, आइए सर्वर फ़्लैशप्लेयरअपडेट.डोमेन.लोकल पर कॉल करें।

3. संसाधन डाउनलोड करें और उन्हें सर्वर पर अपलोड करें

हम वेब सर्वर के रूट में एक डायरेक्टरी ट्री बनाते हैं: /pub/flashplayer/update/current/sau/ ।

मेरे सर्वर पर निर्देशिका वृक्ष:

यदि आपने पहले चरण में लाइसेंस का अनुरोध किया है, तो जवाब में आपको फ्लैशप्लेयर डाउनलोड करने के लिंक के साथ एक पत्र प्राप्त होना चाहिए - इसी लिंक का अनुसरण करें। यदि आपको यह प्राप्त नहीं हुआ है या आपने इसका अनुरोध नहीं किया है, तो यहां जाएं: https://www.adobe.com/products/flashplayer/distribution3.html और लिंक से संग्रह डाउनलोड करें " पृष्ठभूमि अद्यतन संसाधन डाउनलोड करें":

विस्तारित समर्थन रिलीज़ या सार्वजनिक रिलीज़

यहां एक टिप्पणी करने की जरूरत है. पृष्ठ पर 2 डाउनलोड विकल्प हैं: मानक (सार्वजनिक) और विस्तारित समर्थन रिलीज़। मेरे मामले में, स्थिरता महत्वपूर्ण है और नई सुविधाओं की आवश्यकता नहीं है, इसलिए ईएसआर विकल्प चुना गया। उसी समय, मैंने अपने आप में एक निश्चित मात्रा में बवासीर जोड़ लिया: सार्वजनिक संस्करण सीधे मैक्रोमीडिया वेबसाइट से स्क्रिप्ट द्वारा डाउनलोड किया जा सकता है। मैंने अभी भी गूगल पर ईएसआर डाउनलोड करने का तरीका नहीं खोजा है, इसलिए मेरे मामले में आंतरिक सर्वर पर सामग्री अपडेट की जाती है मैनुअल मोड.

लेख के अंत में मैंने 2 पावरशेल स्क्रिप्ट संलग्न की हैं: के लिए स्वचालित अपडेट(केवल मानक संस्करण के लिए; आसानी से बैश में पोर्ट किया गया), अपडेट की जांच करने और ई-मेल द्वारा सूचित करने के लिए (ईएसआर सहित किसी भी संस्करण के लिए)।


डाउनलोड किए गए संग्रह को सर्वर पर /pub/flashplayer/update/current/sau/ फ़ोल्डर में अनपैक करें।

4. ग्राहकों को कॉन्फ़िगरेशन फ़ाइल वितरित करना

सिस्टम क्षमता के आधार पर:

  • 32-बिट: C:\Windows\ System32\मैक्रोमेड\फ़्लैश\mms.cfg
  • 64-बिट: C:\Windows\ SysWOW64\मैक्रोमेड\फ़्लैश\mms.cfg
आप इसे किसी भी तरह से वितरित कर सकते हैं। मैंने डोमेन नीति और एंटीवायरस एडमिनिस्ट्रेशन सर्वर के संयोजन का उपयोग किया (उन कंप्यूटरों के लिए जिन्होंने डोमेन छोड़ दिया था)।

फ़ाइल में, हम साइलेंट ऑटो-अपडेट सक्षम करते हैं, अपडेट अंतराल (दिनों में), हमारे सर्वर का पथ निर्दिष्ट करते हैं, और, यदि कोई समस्या आती है तो उसका निदान करना आसान बनाने के लिए लॉगिंग करते हैं:

AutoUpdateDisable=0 SilentAutoUpdateEnable=1 AutoUpdateInterval=2 SilentAutoUpdateServerDomain=FlashPlayerUpdate.domain.local SilentAutoUpdateVerboseLogging=1
यदि सब कुछ सही ढंग से किया गया था, तो क्लाइंट मशीनों पर फ़्लैश प्लेयर को एक शेड्यूल के अनुसार अपडेट करना शुरू कर देना चाहिए (उपरोक्त फ़ाइल के अनुसार - हर 2 दिन में एक बार)। आमतौर पर, Adobe अद्यतन सेवा अद्यतन स्थितियों की जाँच करने के लिए एक घंटे में एक बार चलती है - इस समय अद्यतनकर्ता को कॉन्फ़िगरेशन फ़ाइल देखनी चाहिए, निर्दिष्ट सेटिंग्स के अनुसार अद्यतनों को पुन: कॉन्फ़िगर करना चाहिए और पर जाना चाहिए नया सर्वरसंस्करण की जाँच करें.

यानी, कॉन्फ़िगरेशन फ़ाइल को वितरित करने के लगभग एक घंटे बाद, आप संस्करण की जांच करने के अनुरोधों के लिए सर्वर पर लॉग देख सकते हैं।

स्वचालन

आईटी बिरादरी के एक क्लासिक प्रतिनिधि के रूप में, मुझे नियमित मैन्युअल काम से नफरत है और मैं सत्यापन और डाउनलोडिंग प्रक्रिया को स्वचालित करने से खुद को रोक नहीं सका नया संस्करण. हालाँकि, जैसा कि ऊपर बताया गया है, मुझे अभी तक मैक्रोमीडिया वेबसाइट से ईएसआर संस्करण डाउनलोड करने का कोई तरीका नहीं मिला है, इसलिए मैं अपडेट की जांच के लिए केवल स्क्रिप्ट का उपयोग करता हूं। सुझावों का स्वागत है.
अपडेट स्वचालित रूप से डाउनलोड करने के लिए स्क्रिप्ट
केवल सार्वजनिक संस्करण के लिए!

ऑपरेशन का तर्क: स्क्रिप्ट मूर्खतापूर्ण ढंग से संस्करण 11,15,16,17,18,19 के लिए मैक्रोमीडिया से सीधे अद्यतन फ़ाइलों को डाउनलोड करती है (यदि कुछ संस्करण पहले ही साइट से हटा दिया गया है, तो स्क्रिप्ट बस शपथ लेगी कि वह डाउनलोड नहीं हो सकी और करेगी) इसे छोड़ें) और इसे अपडेट सर्वर के साथ प्रतिस्थापन के साथ रखता है। कोई संस्करण जाँच नहीं. परीक्षण चरण में, मैंने इस स्क्रिप्ट का उपयोग किया: मैंने इसे रात में सर्वर पर शेड्यूलर के माध्यम से चलाया।

यदि आप चाहें, तो आप इस स्क्रिप्ट और अगले को पार कर सकते हैं और केवल अपडेट होने पर संस्करण जांच, अधिसूचना और डाउनलोडिंग के साथ पूर्ण स्वचालन प्राप्त कर सकते हैं।

स्क्रिप्ट पैरामीटर:

  • *एफपीरूट- अद्यतन सर्वर के रूट फ़ोल्डर का पथ। स्थानीय या नेटवर्क. स्वाभाविक रूप से, जिस उपयोगकर्ता से स्क्रिप्ट लॉन्च की जाएगी, उसके पास इस फ़ोल्डर में लिखने का अधिकार होना चाहिए।
  • एफपीडाउनलोडरूट- मैक्रोमीडिया वेबसाइट पर पथ। यह डिफ़ॉल्ट रूप से सेट है, लेकिन यदि आवश्यक हो तो इसे बदला जा सकता है।
  • प्रॉक्सी डाउनलोड करें एचटीटीपी://प्रॉक्सी.डोमेन.स्थानीय.
  • प्रॉक्सीक्रेडिट्स
  • उपयोगकर्ता एजेंट
  • बल
* - आवश्यक पैरामीटर

उपयोग उदाहरण:

Powershell.exe -कमांड "& ".\FPUpdater.ps1" -FPRoot "\\FlashPlayerUpdate\pub\flashplayer\update\current\sau" -DownloadProxy "http://proxy.domain.local" -ProxyCreds "DOMAIN\UserName " -यूजरएजेंट "मोज़िला/5.0 (विंडोज एनटी 6.1; WOW64; ट्राइडेंट/7.0; आरवी:11.0) गेको की तरह""
यदि लंबी स्टार्टअप लाइनें डराने वाली हों तो सभी मापदंडों को एक स्क्रिप्ट में हार्डकोड किया जा सकता है।

अद्यतनों की जाँच करने और ई-मेल द्वारा सूचित करने के लिए स्क्रिप्ट
अपडेट की जाँच मानक संस्करण के अनुसार की जाती है, लेकिन चूंकि वे एक ही समय में अपडेट किए जाते हैं (किसी ने भी सुरक्षा सुधार रद्द नहीं किए हैं), यह ईएसआर के लिए भी काम करेगा। स्क्रिप्ट को काम करने के लिए, आपको वेब सर्वर के रूट (पब फ़ोल्डर के बगल में) में एक करंटपब्लिक फ़ाइल बनानी होगी, जिसमें आप वर्तमान सार्वजनिक संस्करण दर्ज करें एक्टिवएक्स के लिए(यह ActiveX संस्करण है जिसका उपयोग जाँच के लिए किया जाता है)।

ऑपरेटिंग लॉजिक: स्क्रिप्ट आपके सर्वर से करंटपब्लिक फ़ाइल से प्राप्त संस्करण की तुलना मैक्रोमीडिया सर्वर के संस्करण से करती है। यह ऑटो-अपडेट के तर्क के अनुसार सर्वर पर संस्करण को देखता है: पहले यह XML में वर्तमान प्रमुख बिल्ड को देखता है, प्रमुख वाले फ़ोल्डर में जाता है और वहां पूर्ण बिल्ड को देखता है।

स्क्रिप्ट पैरामीटर:

  • *एफपीइंटसर्वररूट- हमारा सर्वर पता। उदाहरण के लिए: फ़्लैशप्लेयरअपडेट.डोमेन.लोकल
  • एफपीडाउनलोडरूट- मैक्रोमीडिया वेबसाइट पर पथ। यह डिफ़ॉल्ट रूप से सेट है, लेकिन यदि आवश्यक हो तो इसे बदला जा सकता है।
  • ईएसआर- ईएसआर संस्करण की जांच करें (इस ध्वज के बिना यह सार्वजनिक की जांच करेगा)।
  • प्रॉक्सी डाउनलोड करें- प्रॉक्सी सर्वर, यदि किसी कंपनी में उपयोग किया जाता है। पूरा लिखें: एचटीटीपी://प्रॉक्सी.डोमेन.स्थानीय.
  • प्रॉक्सीक्रेडिट्स- प्रॉक्सी पर प्राधिकरण के लिए उपयोगकर्ता नाम।
  • उपयोगकर्ता एजेंट- उपयोगकर्ता एजेंट को बदलने के लिए जिसके साथ PowerShell डाउनलोड होगा। उदाहरण के लिए, हमारी प्रॉक्सी UserAgents द्वारा सीमित है, मैं इंटरनेट एक्सप्लोरर एजेंट का उपयोग करता हूं।
  • बल- इनवोक-वेब्रेक्वेस्ट सीएमडीलेट के लिए प्रमाणपत्र जांच अक्षम करें (अधिक सटीक रूप से, इसे सभी प्रमाणपत्रों पर भरोसा करें)।
  • *इन्हें मेल करें- ई-मेल पते जिन पर सूचनाएं भेजी जाएंगी।
  • *मेल प्रेषक- किससे नोटिफिकेशन आएंगे। उदाहरण के लिए: [ईमेल सुरक्षित]
  • एसएमटीपीसर्वर- एसएमटीपी सर्वर जिसके माध्यम से संदेश भेजा जाएगा।
* - आवश्यक पैरामीटर

उपयोग उदाहरण:

.\FPCheckUpdate.ps1 -FPIntServerRoot "fp-update.domain.local" -ESR -प्रॉक्सी "http://proxy.domain.local" -UserAgent InternetExplorer -Force -MailTo " [ईमेल सुरक्षित]","[ईमेल सुरक्षित]"-मेल प्रेषक" [ईमेल सुरक्षित]-SmtpServer "smtp.company.com"

संसाधनों का उपयोग किया गया

युपीडी

06/17/16 से थोड़ा विलम्बित अद्यतन।

चूंकि यह आलेख लिखा गया था, एडोब फ्लैशप्लेयर डाउनलोड पेज तक पहुंच के क्रम को दो बार बदलने में कामयाब रहा है। नतीजतन, अब डाउनलोड पेज तक पहुंचने के लिए, आपको पहले एडोब आईडी में लॉग इन करना होगा। यानी, का विकल्प ईएसआर संस्करण के लिए पेज को पार्स करने पर अब रोल उपलब्ध नहीं हैं।

मैंने अभी तक PowerShell के माध्यम से प्राधिकरण या कुकीज़ प्राप्त करने और भेजने की चिंता नहीं की है। परिणामस्वरूप, मैंने वितरण3 पृष्ठ पर ईएसआर की जाँच के लिए स्क्रिप्ट को फिर से बनाया, जो किसी भी समय गायब हो सकती है। अभी तक तो आगे देखेंगे.

वर्ष की शुरुआत में, मैंने ईएसआर संस्करण के अपडेट की जाँच के विषय पर एडोब फोरम पर एक प्रश्न पूछा था। वे कुछ न कुछ लेकर आने का वादा करते हैं, लेकिन अभी तक समस्या जस की तस है।

UPD2

दूसरे दिन, फ़्लैश प्लेयर वितरण पृष्ठ पर निम्नलिखित जानकारी दिखाई दी (वह लिंक जो आपको वितरण लाइसेंस प्राप्त होने पर प्राप्त हुआ था):

ध्यान! विस्तारित समर्थन रिलीज़ के साथ महत्वपूर्ण परिवर्तन

विस्तारित समर्थन रिलीज़ को मूल रूप से फ़्लैश प्लेयर की प्रत्येक नई रिलीज़ को प्रमाणित करने में आईटी प्रशासकों द्वारा खर्च किए जाने वाले समय को कम करने के लिए डिज़ाइन किया गया था: विस्तारित समर्थन रिलीज़ ने सुरक्षा परिवर्तनों और महत्वपूर्ण कार्यात्मक मुद्दों के समाधान के लिए रिलीज़ परिवर्तनों को सीमित कर दिया। उस समय, फ़्लैश प्लेयर की प्रत्येक रिलीज़ में सुरक्षा परिवर्तनों की तुलना में कई अधिक कार्यात्मक परिवर्तन थे। हालाँकि, स्थिति अब बदल गई है: सक्रिय और प्रतिक्रियाशील सुरक्षा उपायों की संख्या कार्यात्मक परिवर्तनों से कहीं अधिक है। व्यवहार में, विस्तारित समर्थन रिलीज़ अब आईटी संगठनों की सुरक्षा नहीं करता है विशाल राशिफ़्लैश प्लेयर के मानक रिलीज़ में परिवर्तन किए गए, लेकिन केवल कार्यात्मक जोखिमों को कम किया गया। इस संबंध में, विस्तारित समर्थन रिलीज़ को बंद करने और केवल मानक रिलीज़ विकसित करने पर ध्यान केंद्रित करने का निर्णय लिया गया। टैगों को जोड़ें

अंतिम लेख एनिमेशन को समर्पित था। हमने मोशन ट्विनिंग, शेप ट्विनिंग और बस अलग-अलग फ़्रेमों से मूवमेंट की रचना के आधार पर एनीमेशन बनाया। मुझे लगता है कि अब अधिक उन्नत विषय पर आगे बढ़ने का समय आ गया है, उस टूल पर गौर करने का जो अधिकांश गुणवत्ता वाली फ़्लैश फिल्मों के लिए आधार तैयार करता है।

यह टूल एक्शनस्क्रिप्ट है, जो फ़्लैश में निर्मित एक इवेंट-संचालित भाषा है। नवीनतम संस्करणएक्शनस्क्रिप्ट (जो फ्लैश 5 में मौजूद है) एक्शनस्क्रिप्ट से काफी अलग है, जो फ्लैश 4 में था। यदि पिछले संस्करण में यह आदेशों का एक सीमित सेट था, जो केवल बुनियादी क्रियाओं की अनुमति देता था, और बहुत उपयोगकर्ता-अनुकूल इंटरफ़ेस का उपयोग करके दर्ज नहीं किया गया था, तो नया एक्शनस्क्रिप्ट एक शक्तिशाली भाषा है, जिसमें आदेशों का एक बढ़ा हुआ सेट, कक्षाओं के लिए समर्थन, विरासत है। (!), और बहुत अधिक सुविधाजनक इंटरफ़ेस।

एक्शनस्क्रिप्ट आपके पृष्ठों को इंटरैक्टिव बनाता है। आप माउस या कीबोर्ड से घटनाओं पर प्रतिक्रिया कर सकते हैं, और एक निश्चित फ्रेम खेलते समय आप कोई भी कार्रवाई कर सकते हैं।

एक्शनस्क्रिप्ट में पूरी तरह से महारत हासिल करने के लिए, पहले से ही प्रोग्रामिंग अनुभव (अधिमानतः सी ++, जावास्क्रिप्ट, आदि में) होना उचित है। हालाँकि, फ़्लैश भाषा का एक लाभ यह है कि इसमें गुणवत्ता कोड लिखने के लिए आपको फ़्लैश प्रो होने या एक्शनस्क्रिप्ट से पूरी तरह परिचित होने की आवश्यकता नहीं है। आप उन भाषा सुविधाओं का उपयोग कर सकते हैं जिन्हें आप अपने काम के लिए आवश्यक समझते हैं।

चूँकि यह लेख भाषा की मूल बातों के बारे में है, इसमें हम शामिल होंगे:

  • एक्शन पैनल वह जगह है जहां एक्शनस्क्रिप्ट के साथ लगभग सभी संचार होते हैं।
  • बटन - उन्हें हमारी आवश्यकता के अनुसार कैसे कार्यान्वित किया जाए।
  • पथ - आवश्यक वस्तुओं तक कैसे पहुँचें?
  • फ्लैश कार्टून (मूवी क्लिप) के साथ बुनियादी क्रियाएं - हम अपनी इच्छानुसार मूवी चलाने की प्रक्रिया को नियंत्रित करेंगे।
  • एक्शनस्क्रिप्ट में डिबगिंग - आउटपुट और डिबगर विंडो।

इस लेख का उद्देश्य आपको एक्शनस्क्रिप्ट का अनुभव कराना है, यह दिखाना है कि इस भाषा का उपयोग बहुत प्रभावशाली कार्यक्रम बनाने और बुनियादी क्रियाएं करने दोनों के लिए किया जा सकता है जो आपके पेज को और अधिक आकर्षक बना देगा।

शर्तें

इससे पहले कि हम विशिष्ट कार्यों में उतरें, कुछ एक्शनस्क्रिप्ट शब्द:

  • कार्रवाई- ये निर्देश हैं जो फ्लैश कार्टून को बताते हैं कि क्या करना है। उन्हीं से भाषा का नाम आता है - एक्शनस्क्रिप्ट (शाब्दिक रूप से - एक्शन स्क्रिप्ट)। आइए सहमत हों कि इस लेख के ढांचे के भीतर, हम "निर्देश" शब्द का उपयोग करेंगे ताकि हमारे द्वारा किए जाने वाले वास्तविक कार्यों से भ्रमित न हों।
  • आयोजन- ये वे क्रियाएं हैं जो कार्टून चलाने पर होती हैं। उदाहरण के लिए, घटनाएँ तब घटित हो सकती हैं जब एक निश्चित फ्रेम की लोडिंग समाप्त हो जाती है, जब हम एक निश्चित फ्रेम पर पहुँचते हैं, जब उपयोगकर्ता कीबोर्ड पर एक कुंजी दबाता है या माउस कर्सर हमारे ऑब्जेक्ट पर होता है।
  • अभिव्यक्तिकिसी निर्देश का कोई भाग है जो मूल्य उत्पन्न करता है। निम्नलिखित उदाहरण अभिव्यक्ति हैं: 2 + 2, 2 * 2, ए + बी, 2*पीआई*आर, (15 + के) * यादृच्छिक(10).
  • कार्यकोड का एक ब्लॉक है जिसका पुन: उपयोग किया जा सकता है। आप किसी फ़ंक्शन में मान पास कर सकते हैं और उससे रिटर्न परिणाम प्राप्त कर सकते हैं। उदाहरण के लिए, संख्या = get_color(15, 24). 15 और 24 get_color फ़ंक्शन के तर्क (या पैरामीटर) हैं, जिनका रिटर्न मान संख्या चर में लिखा जाता है।
  • कक्षाओंवस्तुओं के प्रकार हैं. उदाहरण के लिए, वृक्ष वर्ग पौधा है। फ्लैश में कई पूर्वनिर्धारित कक्षाएं हैं (काफी हद तक जावास्क्रिप्ट कक्षाओं की तरह)। आप अपनी स्वयं की कक्षाएं बना सकते हैं या मौजूदा कक्षाओं को संशोधित कर सकते हैं।
  • उदाहरणवस्तुतः कुछ वर्गों के उदाहरण हैं। उदाहरण के लिए, एक पौधे का उदाहरण एक पेड़, झाड़ी या फूल हो सकता है। एक उदाहरण पहले से ही एक विशिष्ट वास्तविक वस्तु है। यदि एक वर्ग किसी वस्तु (उदाहरण) की परिभाषा है, तो एक उदाहरण पहले से ही एक ठोस अवतार है, यह क्रिया में एक वर्ग है। प्रत्येक उदाहरण को एक नाम दिया जा सकता है ताकि ऑब्जेक्ट के फ़ंक्शन या वेरिएबल्स को इसके माध्यम से एक्सेस किया जा सके।
  • संचालकोंविशेष निर्देश हैं जो घटनाओं को संसाधित करते हैं। उदाहरण के लिए onClipEvent- एक विशिष्ट प्रतीक से जुड़े कार्यों के लिए एक हैंडलर (देखें)।
  • ऑपरेटर्सभाषा तत्व हैं जो एक या अधिक तर्कों के आधार पर मूल्यों की गणना करते हैं। उदाहरण के लिए, अतिरिक्त ऑपरेटर (+) इसके बाएँ और दाएँ दो मानों का योग लौटाता है।
  • चरपहचानकर्ता हैं जो मूल्यों को संग्रहीत कर सकते हैं। उदाहरण के लिए, ए = 5; या नाम = "माइकल"।

ये वे शब्द हैं जिनका उपयोग हम एक्शनस्क्रिप्ट पर चर्चा करते समय करेंगे। इसलिए…

क्रियाएँ पैनल

एक्शन बार का उपयोग एक्शनस्क्रिप्ट प्रोग्राम को प्रदर्शित करने और दर्ज करने के लिए किया जाता है (चित्र 1)। पैनल के साथ संचालन के दो तरीके हैं - सामान्य (डमी के लिए) और विशेषज्ञ। विशेषज्ञ मोड में, आदेशों की सूची एक साधारण पाठ इनपुट फ़ील्ड है। सामान्य मोड में, हम सीधे कमांड संपादित नहीं कर सकते। ऐसा करने के लिए, विकल्प पैनल का उपयोग करें.

आप "+" बटन पर क्लिक करके या भाषा तत्वों की सूची में उपयुक्त निर्देश का चयन करके एक निर्देश जोड़ सकते हैं। इसके अलावा, फ्लैश में सभी क्रियाओं के लिए प्रमुख अनुक्रम होते हैं जिनका उपयोग इसे बहुत तेजी से करने के लिए किया जा सकता है। वे "+" बटन मेनू में प्रत्येक क्रिया के दाईं ओर दिखाए जाते हैं। उदाहरण के लिए, कोई फ़ंक्शन जोड़ना रुकना(), आपको Esc+st दबाना होगा (क्रमानुसार: Esc, फिर "s", फिर "t")।

आप किसी निर्देश को चुनकर और "-" बटन (या बस हटाएँ कुंजी) दबाकर उसे हटा सकते हैं।

मेरा सुझाव है कि यदि आपके पास जावा जैसी भाषाओं (सी++, जावा, जावास्क्रिप्ट) में प्रोग्रामिंग का अनुभव नहीं है तो आप तुरंत विशेषज्ञ मोड का उपयोग शुरू न करें। सामान्य मोड का एक बड़ा फायदा है जो इसे शुरुआती लोगों के लिए अपरिहार्य बनाता है - भाषा के वाक्य-विन्यास में गलती होने की संभावना बहुत कम होती है। इससे शुरुआती लोगों को एक्शनस्क्रिप्ट की जटिलताओं को तुरंत समझने में मदद मिलेगी।


चावल। 1 - एक्शन बार

एक्शन पैनल वर्तमान में चयनित ऑब्जेक्ट या फ़्रेम की गतिविधियों को प्रदर्शित करता है।

बटन

जब आप फ़्लैश इंटरैक्टिविटी सीखना शुरू करते हैं तो पहली चीज़ जो आप चाहते हैं वह है कुछ ऐसा बनाना जो उपयोगकर्ता के कार्यों का जवाब दे, आपकी रचना को "पुनर्जीवित" करे, जोड़ें प्रतिक्रिया. ऐसा करने का सबसे आसान तरीका बटनों का उपयोग करना है। इसलिए, हम उनसे शुरुआत करेंगे।

जैसा कि आप जानते हैं, फ़्लैश में बटन बनाने के लिए एक विशेष प्रकार का प्रतीक होता है - बटन (देखें)। आइए मान लें कि आपने बटन बनाना सीख लिया है, अब सीखते हैं कि इन बटनों पर क्लिक को कैसे ट्रैक किया जाए।

मैक्रोमीडिया फ्लैश के बटनों में घटनाओं की एक विस्तृत सूची है जिसका हम जवाब दे सकते हैं:

  • प्रेस- जब कर्सर बटन के भीतर होता है तो माउस बटन दबाया जाता है;
  • मुक्त करना- जब कर्सर बटन के भीतर होता है तो माउस बटन रिलीज़ हो जाता है;
  • बाहर जारी करें- जब कर्सर बटन के बाहर होता है तो माउस बटन रिलीज़ हो जाता है;
  • रोल ओवर- माउस कर्सर बटन में प्रवेश करता है;
  • रोल आउट- कर्सर बटन से आगे चला जाता है;
  • पर खींचे- कर्सर बटन की सीमा में प्रवेश करता है, जबकि बटन दबाया गया था और माउस कुंजी दबाई गई थी;
  • बाहर खींचना- कर्सर बटन से आगे चला जाता है, जबकि बटन दबाया गया था और माउस कुंजी दबाई गई थी;
  • बटन दबाओ("कुंजी") - एक "कुंजी" दबाया गया था। आप फ़्लैश सहायता (कुंजी ऑब्जेक्ट) में कुंजियों की सूची देख सकते हैं, या वांछित कुंजी दर्ज करने के लिए विकल्प बार का उपयोग कर सकते हैं।

दुर्भाग्य से, फ़्लैश केवल बाएँ माउस बटन को "समझता" है। दाईं ओर का उपयोग संदर्भ मेनू को कॉल करने के लिए किया जाता है (कुछ फ़्लैश कार्टून पर राइट-क्लिक करें)। मुझे अभी तक फ़्लैश में मध्य कुंजी या माउस व्हील को पकड़ने का कोई तरीका नहीं मिला है; मुझे नहीं लगता कि वे मौजूद हैं।

इन घटनाओं को निर्देश का उपयोग करके रोका जाता है पर(). इसका सिंटैक्स है:

चालू (घटना) (... // हमारे कार्य)

नीचे आप स्वयं कुछ घटनाओं को ट्रिगर करने का प्रयास कर सकते हैं:

एक बटन क्लिक करने पर एक लिंक का अनुसरण करना एक बहुत ही सामान्य रूप से उपयोग किया जाने वाला उदाहरण है:

चालू (रिलीज़) ( getURL("http://rubs.boom.ru"); )

इस परिदृश्य का परीक्षण करने के लिए, अपने बटन को हाइलाइट करें, Ctrl+Alt+A दबाएँ और प्रोग्राम दर्ज करें।

इस तरह आप किसी बटन से जुड़ी सभी घटनाओं को आसानी से रोक सकते हैं। खैर, उनका उपयोग कैसे करना है यह पूरी तरह से आपकी कल्पना का विषय है।

मूवी क्लिप्स के साथ बुनियादी कदम

फ़्लैश में बड़ी मात्रा में रचनात्मकता प्रतीक हेरफेर से आती है। लगभग सभी बुनियादी तकनीकें, सभी तरकीबें और प्रभाव इन क्रियाओं के बिना असंभव हैं।

एक्शनस्क्रिप्ट के साथ, आप पात्रों के साथ लगभग कुछ भी कर सकते हैं। आपको बस यह याद रखने की जरूरत है कि ये क्रियाएं या तो उपयोगकर्ता की कार्रवाई के जवाब में ही की जा सकती हैं, या जब टाइमलाइन पर एक निश्चित फ्रेम होता है।

तो हमारे पास क्या है? मैं केवल मुख्य (मेरी राय में) उपकरण सूचीबद्ध करूंगा। बाकी आपको भाषा तत्वों की सूची या सहायता में मिलेगा।

मूवी क्लिप फ़ंक्शंस जिन्हें कहा जा सकता है:

  • खेल() - किसी क्लिप का प्लेबैक शुरू या फिर से शुरू करना;
  • रुकना() - क्लिप प्लेबैक रोकता है;
  • गोटूएंडप्ले() - एक निश्चित फ्रेम (दृश्य) पर जाता है और प्लेबैक जारी रखता है;
  • गोटोएंडस्टॉप() - एक विशिष्ट फ्रेम (दृश्य) पर जाता है और प्लेबैक बंद कर देता है।

क्लिप के गुण (पैरामीटर) जिन्हें पढ़ा/बदला जा सकता है:

  • _x, _y - क्लिप निर्देशांक (पिक्सेल में);
  • _xस्केल, _yस्केल - क्लिप स्केल (प्रतिशत में), क्रमशः क्षैतिज और लंबवत;
  • _चौड़ाई ऊंचाई - क्लिप की चौड़ाई और ऊंचाई (पिक्सेल में);
  • _रोटेशन - क्लिप के घूमने का कोण (डिग्री में);
  • _अल्फ़ा - क्लिप की पारदर्शिता (प्रतिशत में);
  • _दृश्यमान - दृश्यता.

यह सब कुछ नहीं है जो क्लिप के साथ किया जा सकता है। अन्य मापदंडों का उपयोग करें, प्रयोग करें, रचनात्मक बनें!

नाम

क्लिप तक पहुंचने के लिए, हमें ऑब्जेक्ट नाम (उदाहरण नाम) और ऑब्जेक्ट के पथ (लक्ष्य पथ) की अवधारणा को समझने की आवश्यकता है। चलिए मान लेते हैं कि मूवी क्लिप और ऑब्जेक्ट हमारे लिए एक ही चीज़ हैं।

ऑब्जेक्ट का नाम एक विशिष्ट प्रतीक उदाहरण का नाम है। मान लीजिए कि हमारे पास एक प्रतीक हो सकता है - एक कार, और इस प्रतीक के उदाहरणों को "मशीन1", "मशीन2", "पिकअप", "ज़ापोरोज़ेट्स" कहा जाएगा...

किसी ऑब्जेक्ट को नाम देने के लिए, आपको ऑब्जेक्ट का चयन करना होगा, और इंस्टेंस पैनल (विंडो->पैनल->इंस्टेंस, Ctrl+I) में नाम कॉलम में, ऑब्जेक्ट का नाम दर्ज करें (चित्र 2) ). नाम में केवल अक्षर, संख्याएँ और अंडरस्कोर वर्ण ("_") शामिल हो सकते हैं, और नाम किसी संख्या से शुरू नहीं हो सकता।


चावल। 2 - इंस्टेंस पैनल

के रास्ते

किसी ऑब्जेक्ट का पथ, पदानुक्रम को ध्यान में रखते हुए, ऑब्जेक्ट के नाम का रिकॉर्ड है। मैं यह समझाने की कोशिश करूंगा कि यह क्या है।

आप जानते हैं कि फ़्लैश में, वस्तुओं को एक-दूसरे के भीतर नेस्ट किया जा सकता है, इस प्रकार एक पदानुक्रम बनता है। इसलिए, यह नेस्टिंग न केवल वस्तुओं को संभालने में सुविधा प्रदान करती है, बल्कि यह वस्तु नामों की दृश्यता को भी सीमित करती है। दृश्यता अपने स्तर तक ही सीमित है। एक वस्तु सीधे (नाम से) केवल उन वस्तुओं तक पहुंच सकती है जो पदानुक्रम में एक स्तर नीचे हैं।

किसी ऑब्जेक्ट को दूसरे स्तर पर एक्सेस करने के लिए, आपको उस तक पहुंचने का रास्ता जानना होगा। इसके अलावा, पथ को या तो बिल्कुल (पदानुक्रम के शीर्ष स्तर से) या अपेक्षाकृत (वर्तमान स्तर से) निर्दिष्ट किया जा सकता है।

पथ में वे वस्तुएं शामिल हैं जिनके माध्यम से हमें एक बिंदु के माध्यम से सूचीबद्ध वस्तु तक पहुंचने के लिए पदानुक्रम वृक्ष के साथ "गुजरना" पड़ता है। इसके अतिरिक्त, कई संकेतक हैं (हम उन्हें "आभासी वस्तुएं" कह सकते हैं) जो अक्सर बहुत उपयोगी होते हैं:

यह - "स्वयं" के लिए एक सूचक (अर्थात, वर्तमान वस्तु के लिए)। इसकी आवश्यकता हो सकती है, उदाहरण के लिए, जब आपको उस ऑब्जेक्ट पर पॉइंटर पास करने की आवश्यकता होती है जिससे यह फ़ंक्शन किसी फ़ंक्शन में कॉल किया जाता है।

_अभिभावक - "माता-पिता" की ओर सूचक। पदानुक्रम में उच्च स्तर पर किसी वस्तु की ओर इंगित करता है।

_जड़ - "जड़"। यह पदानुक्रम की शुरुआत है. निरपेक्ष पथ निर्दिष्ट करते समय आप इसके बिना काम नहीं कर सकते।

पथ इस प्रकार दिखता है:

पत्ती.प्ले();- उपविषय पर पत्ता(पत्ती) फ़ंक्शन को बुलाया गया खेल();

_parent.tree.leaf.stop();- यह माना जाता है कि एक ही स्तर पर कोई वस्तु है पेड़,जिसमें एक वस्तु है पत्ता, जिससे फ़ंक्शन को कॉल किया जाता है रुकना();

_root.banner._visible = false;- एक क्लिप बनाओ बैनर, प्रथम स्तर पर स्थित, अदृश्य।



चावल। 3 - क्लिप का पदानुक्रम

उदाहरण के लिए, आइए 5 वस्तुओं का एक पदानुक्रम लें (चित्र 3)। ऑब्जेक्ट 1-4 पहली परत पर हैं, ऑब्जेक्ट 5 दूसरी परत पर हैं। ऑब्जेक्ट 2 को ऑब्जेक्ट 1 में नेस्ट किया गया है, और ऑब्जेक्ट 3 को ऑब्जेक्ट 2 में नेस्ट किया गया है। तस्वीर में ऑब्जेक्ट्स दृश्य रूप से एक-दूसरे के भीतर नेस्ट किए गए हैं, लेकिन इसका मतलब यह नहीं है कि "वास्तविक जीवन में" ऐसा ही होना चाहिए। यहां उन्हें स्पष्टता के लिए समूहीकृत किया गया है। चूंकि किसी वस्तु का नाम किसी संख्या से शुरू नहीं हो सकता, इसलिए हमारी वस्तुओं को नाम दिया जाए obj1-obj5.

अब आइए रास्तों से निपटें। सबसे पहले, आइए देखें कि कौन सी वस्तुएं एक-दूसरे को नाम से संदर्भित कर सकती हैं। obj1संपर्क कर सकते हैं ओबीजे2,obj2- को obj3, लेकिन साथ ही obj1संपर्क नहीं हो पा रहा है obj3सीधे तौर पर, क्योंकि यह इसमें समाहित नहीं है obj1, और में obj2.

मान लीजिए कि पहले ऑब्जेक्ट को पहले फ्रेम से फिर से खेलना शुरू करने के लिए ऑब्जेक्ट 3 की आवश्यकता है। यहां बताया गया है कि यह कैसे किया जाता है:

obj2.obj3.gotoAndPlay(1);

चौथी वस्तु को पहली वस्तु (सभी उप-वस्तुओं के साथ नोट!) को अर्ध-पारदर्शी बनाने के लिए, उसे अपनी स्क्रिप्ट में निम्नलिखित लिखना होगा:

पेरेंट.ओबीजे1._अल्फा = 50;

Root.obj1._alpha = 50;

क्योंकि obj4पदानुक्रम के पहले स्तर पर है, तो उसके लिए _जड़और _अभिभावक- वही।

अब ऑब्जेक्ट 3 के लिए हम एक स्क्रिप्ट लिखेंगे जो माउस बटन दबाने पर ऑब्जेक्ट 5 को अदृश्य कर देगी। ऑब्जेक्ट 3 की स्क्रिप्ट में हम लिखते हैं:

ऑनक्लिपइवेंट (माउसडाउन) ( _root.obj5._visible = false; )

इस स्निपेट में हमने एक निरपेक्ष पथ का उपयोग किया है। यदि हम सापेक्ष का उपयोग करते हैं तो यह इस प्रकार दिखेगा:

अभिभावक._अभिभावक._अभिभावक.obj5._दृश्यमान = असत्य;

मुझे आशा है कि मैंने पथ संबंधी समस्या का समाधान कर दिया है।

उपरोक्त उदाहरणों ने न केवल दिखाया कि पथ कैसे दिखते हैं, बल्कि यह भी दिखाया गया है कि फ़ंक्शन कैसे कॉल किए जाते हैं और संपत्ति मान कैसे निर्दिष्ट किए जाते हैं।

विषय पर प्रकाशन