2010-11-01 15 views
5

Flex 4 projemi karınca kullanarak oluşturmaya çalışıyorum. Flash Builder 4'te proje özelliklerinde "Çerçeve bağlantısı", "Birleştirilmiş Kod", "Çalışma Zamanı Paylaşımlı Kütüphane (RSL)" veya "SDK Varsayılanı Kullan (Çalışma Zamanı Paylaşılan kitaplığı)" seçeneğine ayarlanabilir. Build.xml'de eşdeğeri mxmlc seçeneklerini nasıl ayarlayabilirim?mxmlc ve çerçeve bağlantısı - rsl olarak nasıl bağlantı belirtilir?

Bulunduğum Build.xml şöyle görünür:

<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> 

ben çalışma zamanı paylaşılan kitaplığı-yol yönergesini ayarı ve çerçeve swf kopyalama, benim hedef klasörüne SWZ dosyaları işlerin yapmak farz, ama bu durum böyle görünmüyor.

Bunun işe yarayıp yaramadığına bakıyorum: Özel bir ön yükleyici kullanıyorum ve çalışması için RSL olarak çerçeve bağlantısına ihtiyacım var. "Kodla birleştirildi" ile, ön yükleyicim belirli bir noktada sıkışır ve benim uygulama swf'ye ilerlemez. Bu, yukarıdaki build.xml'yi kullandığımda gördüğüm aynı davranıştır, bu da bana SWF'nin (RSL bağlantılı değil) kodla birleştirilen çerçeve bağlantısıyla oluşturulduğunu düşündürüyor.

İlgili bir soru, swf'nin RSL kullanıp kullanmadığını belirlemektir. Derlenmiş çıktının büyüklüğüne bakabilirim sanırım. Ama öyle görünüyor ki, dış çerçeve dosyasını kullanıp kullanmadığımı ya da SWF'ye bir şekilde bilgim olsun.

cevap

6

Bu biraz zor çünkü belgeler bu konuda biraz az. Muhtemelen, aşağıdaki seçeneği komut satırında veya bir yapılandırma dosyasında ayarlamanız gerekir.

Adobe'den belgeler sahte

statik bağlantı-çalışma zamanı paylaşılan-kütüphaneler = Bu seçeneğin ne işe yaradığını aşağıdaki hafifçe şifreli olarak verir.

Kütüphanelere statik olarak mı derleneceğini veya RSL'leri mi kullanacağını belirler. Çalışma zamanı paylaşımlı kütüphane yolu seçeneği tarafından belirtilen RSL'leri yok saymak için bu seçeneği true olarak ayarlayın. RSL'leri kullanmak için bu seçeneği yanlış olarak ayarlayın. Varsayılan değer doğrudur.

Bu seçenek, çalışma zamanı-paylaşılan-kitaplık yolu yolunu değiştirmeden, statik veya dinamik olarak bağlantılı bir uygulama arasında hızlıca geçiş yapabilmeniz için yararlıdır, bu da ayrıntılı olabilir veya yapılandırma dosyalarını düzenler.

Dökümantasyona bir link. "About the application compiler options"

Belgelerden varsayılan değerlerin doğru olduğunu unutmayın. Eğer bir flex-config.xml dosyası (varsayılan veya özel) yüklüyorsanız, bu ayarın o dosyada olup olmadığını ve ne olduğunu kontrol etmelisiniz. Benim deneyimimde, çerçeveler/flex-config.xml için varsayılan değer aslında yanlıştır. Ancak yukarıdaki örnekte bunun başka bir şekilde ayarlanabileceği anlaşılmaktadır.


(Biz o yüzden gerekir Build.xml sözdizimi aşina değilim ANT farklı bir yapı sistemi kullanın.) Aslında bu sorunu çözmek için hile

+1

. Projemi bir karınca oluşturma dosyası olarak dışa aktarmak için [sourcemate] (http://www.elementriver.com/sourcemate) kullanarak sona erdim, sonra her şeyi çalıştırabildim.Dosyama yazmamı bekleyen adobe hata ayıklamadan çok daha hızlıydı! – cybertoast

+2

Justin, size doğru cevabı veriyorum çünkü doğru yönde. Gerçek seçeneğidir: . Teşekkürler. – cybertoast

+0

Sorunumu çözdüm thx, Benim durumumda, mxmlc'yi komut satırı olarak çalıştırmak için kar kullanarak, eklemek zorunda kaldım – Guian