जैसा कि कई फ़्लैशर्स (और न केवल) जानते हैं, पीएनजी संसाधनों के आधार पर एक सरल रूप बनाना, सिद्धांत रूप में, मुश्किल नहीं है, लेकिन क्या होगा अगर ये रूप लगातार बारिश के बाद मशरूम की तरह बदल रहे हैं, सही कर रहे हैं और गुणा कर रहे हैं?
क्या करें?
और हम ऐसा करेंगे।
हम psd फ़ाइल को एक इंटरैक्टिव रूप में बदल देंगे जिसके साथ आप पहले से ही बहुत पारदर्शी तरीके से काम कर सकते हैं और निर्देशांक और अन्य डिजाइन चीजों के बारे में नहीं सोच सकते हैं।
कार्यक्रमों का इस्तेमाल किया
- एडोब फोटोशॉप CS5.5
- एडोब फ्लैश प्रोफेशनल CS5.5
- अजगर 2.6-2.7
- FlashDevelop 4.0.1 आरटीएम
विचार
मुख्य विचार नया नहीं है और यहां उदाहरण के लिए कवर किया गया था:
फ़ोटोशॉप से उपयोगकर्ता इंटरफ़ेस निर्यात करेंमैं इसे लगभग स्वचालित रूप से परिणाम प्राप्त करने के लिए विस्तारित करता हूं।
एल्गोरिथ्म इस प्रकार है:
- डिजाइनर अपनी उज्ज्वल आत्मा के लिए अपनी फ़ाइल के साथ कुछ भी करता है, लेकिन नामकरण और संरचित परतों के लिए कुछ नियमों का पालन करता है।
- प्रोग्रामर इस फ़ाइल को प्राप्त करता है, इसे पार्सर से गुजरता है, और अंततः .XML और .SWC फ़ाइलों को प्राप्त करता है
- परियोजना के लिए .SWC और .XML को जोड़ता है (यदि यह पहली बार नहीं है, तो सब कुछ पहले से ही परियोजना से जुड़ा हुआ है)
अधिक जानकारी
फ़ोटोशॉप। नामकरण और संरचना की परतों के लिए नियम।
सामान्यतया, हम .PSD फ़ाइल को पार्स करते समय काफी कुछ कर सकते हैं, उदाहरण के लिए, शुरुआत में रिक्त स्थान और परत नाम के अंत में, परत नाम में स्थान, परत नाम में सिरिलिक, आदि।
अब मैं केवल नियमों के बारे में बात कर रहा हूं, जिसके बाद हमें न्यूनतम कार्यक्षमता वाला एक फॉर्म मिलेगा।
हम इस फॉर्म को करेंगे:


चलो ऊपर से शुरू करते हैं:
- text_custom_cursor - यह एक परत है जिसमें पाठ के लिए एक मार्कर होता है, बाद में इस नाम से हम मार्कर तक पहुंच प्राप्त करेंगे और इसकी ज्यामितीय विशेषताओं के आधार पर हम एक पाठ क्षेत्र बनाएंगे।
- text_sound_on_off - पहली परत के समान।
कृपया ध्यान दें कि मार्कर स्वयं अनलोड नहीं किए जा सकते हैं, क्योंकि उनके बारे में डेटा .XML में है, हालांकि अब मैं उन्हें अपलोड करता हूं।
- Radio_set_cursor - एक फ़ोल्डर (सेट) जो AS3 की गहराई में रेडियोबटन में बदल जाएगा
इसमें आगे "बात" राज्यों के साथ परतें हैं
radio_on
radio_off
radio_fon - radio_set_sound
radio_on
radio_off
radio_fon - बटन_सेट_1 - फ़ोल्डर (सेट) जो एएस 3 के आंत्र में बटन में बदल जाएगा
इसमें आगे "बात" राज्यों के साथ परतें हैं
b_1_up
b_1_over
b_1_down
b_1_fon
- button_set_2
b_1_up
b_1_over
b_1_down
b_1_fon
कृपया ध्यान दें कि क्रमशः दो रेडियोबटन और बटन के लिए राज्यों का एक ही नाम है, और सेट स्वयं अलग हैं। इसका मतलब है कि उतारने के दौरान, हमें एक्सएमएल फॉर्म में क्रमशः 2 रेडियोबटन और बटन मिलते हैं, लेकिन उनके लिए संसाधन एक ही कॉपी में होंगे, जो महत्वपूर्ण है!
बाकी सब कुछ आप की तरह कहा जा सकता है, लेकिन इसे किसी भी तरह से सुलझाना बेहतर है, इसलिए मैं उन्हें 'सजावट_ + कुछ भी' कहता हूं
यह मूल रूप से सभी नियमों द्वारा है।
अजगर। .XML और .PNG पर अपलोड करें
अजगर क्यों? क्योंकि जो कुछ भी स्वचालित हो सकता है, उस पर किया जाता है। मैंने जिम्प + पाइथन का उपयोग नहीं किया, क्योंकि जिम्प फ़ोल्डर्स (सेट) का समर्थन नहीं करता है, और उनमें, इसलिए बोलने के लिए, सभी नमक। मैंने javaScript का उपयोग नहीं किया, अपने दम से, बल्कि भारी तर्कपूर्ण विचार (लेकिन इसे गति के कारण कहा जा सकता है)। अंत में, मैं COM तकनीक पर बस गया। स्रोत में विवरण संक्षेप में, यह पता चला कि इस तथ्य के कारण कि फ़ोटोशॉप के जीयूआई को अपडेट किया जाता है जब इसकी स्क्रिप्ट काम कर रही होती है, और COM के माध्यम से, आप बस फ़ोटोशॉप को छिपा सकते हैं और फिर गति काफ़ी बढ़ जाती है।
JSFL। यह सब पैकिंग में .SWC
एक सरल JSFL स्क्रिप्ट का उपयोग करते हुए, मैं सभी .PNGs को हमारे लिए सुविधाजनक .SWC में पैक करता हूं
हम पुस्तकालय को परियोजना से जोड़ते हैं, पुस्तकालय की संपत्तियों में 'लाइब्रेरी को शामिल करें' निश्चित करें।
SWF। प्रपत्र लोड हो रहा है
फॉर्म प्रदर्शित करने के लिए तीन वर्गों का उपयोग किया जाता है।
- फॉर्म.स - फॉर्म खुद
- InteractiveContainer.as - एक संवादात्मक कंटेनर जो एक परत के नाम को पार्स करता है और एक संगत, संवादात्मक या नहीं-तो, तत्व बनाता है
- ResourceLoaderFromForm.as - लाइब्रेरी से ग्राफिक्स का लोडर या, एक विकल्प के रूप में, URL द्वारा
बैट। स्वचालित
एक फ़ाइल बनाएँ, उदाहरण के लिए,
psd_parser_habr.batइसे लिखें
@echo off
cls
python D:\main\FlashDevelop\habraForm\python\psd_parser.py %1
D:\main\FlashDevelop\habraForm\python\export_in_swc.jsfl
हमने इसे एक सुरक्षित जगह पर रखा। .Psd फ़ाइलों के लिए एक और "ओपन विथ" लिंक बनाएँ और प्रोग्राम को खोलने के लिए psd_parser_habr.bat निर्दिष्ट करें। अब आप किसी भी .PSD फाइल को इस बैच फाइल के साथ खोल सकते हैं और इस से .WW.XML के रूप में संसाधन प्राप्त कर सकते हैं।
मैंने यहां कोई कोड नहीं दिया, इस तथ्य के कारण कि यह परियोजना में है, कई बारीकियां हैं, लेकिन वे भी परियोजना में चित्रित हैं।
जो लोग खुद को लिखने के लिए बहुत आलसी हैं, वे स्रोत से कोड ले सकते हैं, दूसरों के लिए, पर्याप्त विचार।
आप अभी भी इस विषय पर बहुत बहस कर सकते हैं, कोड की आलोचना कर सकते हैं, और दृष्टिकोण, इस सभी चिड़ियाघर और अन्य और अन्य की सेटिंग्स को 'केंद्रीकृत' कर सकते हैं। और यह सुनिश्चित करने के लिए कि यह ऐसा होगा, लेकिन इस नोट का उद्देश्य केवल यह दिखाना है कि कैसे कम से कम साधनों के साथ, अपने आप को प्राप्त करने के लिए, एक अच्छा परिणाम।
बस इतना ही। परिणाम।
Google डॉक्स से FD4 पर प्रोजेक्ट डाउनलोड करें
युपीडी। बारीकियों से बचने के लिए, संशोधित कला।