2010-11-01 16 views
5

के रूप में लिंक निर्दिष्ट करने के लिए कैसे मैं चींटी का उपयोग कर अपने फ्लेक्स 4 प्रोजेक्ट को बनाने की कोशिश कर रहा हूं। फ्लैश बिल्डर 4 में, प्रोजेक्ट गुणों में "फ्रेम में विलय", "रनटाइम साझा लाइब्रेरी (आरएसएल)" या "एसडीके डिफ़ॉल्ट (रनटाइम साझा लाइब्रेरी) का उपयोग करें" में से एक को "फ्रेमवर्क लिंकेज" सेट करना संभव है। मैं build.xml में mxmlc विकल्पों के बराबर कैसे सेट कर सकता हूं?एमएक्सएमएलसी और फ्रेमवर्क लिंकेज - आरएसएल

मेरे वर्तमान build.xml इस तरह दिखता है:

<target name="myapp"> 
    <mxmlc 
     file="${PROJECT_ROOT}/myapp.mxml" 
     output="${DEPLOY_DIR}/myapp.swf" 
     actionscript-file-encoding="UTF-8" 
     keep-generated-actionscript="false" 
     warnings="false" optimize="true" incremental="false" > 

     <load-config filename="${FLEX_HOME}/frameworks/flex-config.xml"/> 

     <source-path path-element="${FLEX_FRAMEWORKS}"/> 

     <compiler.debug>true</compiler.debug> 

     <runtime-shared-library-path path-element="${FLEX_FRAMEWORKS}/libs/framework.swc"> 
      <url rsl-url="framework_4.0.0.14159.swz"/> 
      <url rsl-url="framework_4.0.0.14159.swf"/> 
     </runtime-shared-library-path>      

     <compiler.source-path path-element="src"/> 

     <!-- List of external libraries --> 
     <compiler.source-path path-element="${MY_LIB}/src" /> 

     <!-- List of SWC files or directories that contain SWC files. --> 
     <compiler.library-path dir="libs" append="true"> 
      <include name="*.swc" /> 
     </compiler.library-path> 

     <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swz"/> 
     <copy todir="${DEPLOY_DIR}" file="${FLEX_FRAMEWORKS}/rsls/framework_4.0.0.14159.swf"/> 

    </mxmlc> 
</target> 

मैं मान लिया है कि क्रम से साझा की गई-पुस्तकालय-पथ निर्देश स्थापित करने और रूपरेखा swf को कॉपी, मेरे लक्ष्य फ़ोल्डर में SWZ फ़ाइलों चीजें काम होगा, लेकिन ऐसा लगता है कि यह मामला नहीं है।

जिस तरह से मैं यह आकलन कर रहा हूं कि यह काम इस प्रकार है: मैं एक कस्टम प्रीलोडर का उपयोग करता हूं, और इसके लिए काम करने के लिए मुझे आरएसएल के रूप में ढांचागत संबंध होना चाहिए। "कोड में विलय" के साथ, मेरा प्रीलोडर एक निश्चित बिंदु पर फंस जाता है और मेरे एप्लिकेशन एसएफएफ में प्रगति नहीं करता है। यह वही व्यवहार है जब मैं उपरोक्त build.xml का उपयोग करता हूं, जो मुझे लगता है कि एसडब्ल्यूएफ को फ्रेमवर्क लिंकेज के साथ बनाया जा रहा है (कोड आरएसएल से जुड़ा हुआ)।

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

उत्तर

6

यह थोड़ा मुश्किल है क्योंकि दस्तावेज इस पर थोड़ा दुर्लभ है। आपको शायद कमांड लाइन या कॉन्फ़िगरेशन फ़ाइल पर निम्न विकल्प सेट करने की आवश्यकता है।

स्थिर-लिंक-क्रम से साझा की गई-पुस्तकालयों = false

एडोब प्रलेखन यह विकल्प क्या करता के निम्नलिखित थोड़ा गुप्त विवरण देता है।

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

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

यहां दस्तावेज़ों का एक लिंक है। "About the application compiler options"

ध्यान दें कि दस्तावेज़ से डिफ़ॉल्ट मान सत्य है। यदि आप एक flex-config.xml फ़ाइल (डिफ़ॉल्ट या कस्टम) लोड कर रहे हैं तो भी आपको यह जांचना चाहिए कि यह सेटिंग उस फ़ाइल में मौजूद है और यह क्या है। मेरे अनुभव में ढांचे/flex-config.xml के लिए डिफ़ॉल्ट मान वास्तव में गलत है। ऐसा प्रतीत होता है कि ऊपर दिए गए उदाहरण में यह दूसरी तरफ सेट किया जा सकता है।


(हम चींटी तुलना में एक अलग निर्माण प्रणाली उपयोग करती हैं इसलिए मुझे लगता है कि build.xml वाक्य रचना आप की आवश्यकता होगी से परिचित नहीं हूँ।)

+1

मैं वास्तव में इस समस्या को हल करने के लिए धोखा दिया। मैं अपने प्रोजेक्ट को एंटी बिल्डफाइल के रूप में निर्यात करने के लिए [sourcemate] (http://www.elementriver.com/sourcemate) का उपयोग कर समाप्त हुआ, फिर सब कुछ काम करने में सक्षम था।यह डिबगिंग से कहीं अधिक तेज़ था कि एडोब ने मुझे अपनी फाइल में क्या लगाने की उम्मीद की थी! – cybertoast

+2

जस्टिन, मैं आपको सही उत्तर दे रहा हूं क्योंकि यह सही दिशा में है। यह वास्तविक विकल्प है: । धन्यवाद। – cybertoast

+0

यह मेरे मुद्दे thx को ठीक करता है, मेरे मामले में, mxmlc को कमांड लाइन के रूप में निष्पादित करने के लिए चींटी का उपयोग करके, मुझे जोड़ना पड़ा – Guian

संबंधित मुद्दे