2011-06-13 11 views
6

यह कोड आईडीई में ठीक संकलित प्रतीत होता है, लेकिन कमांड लाइन कंपाइलर (एसडीके 4.5 mxmlc.exe) रिपोर्ट करता है "पैरामीटर प्रारंभकर्ता अज्ञात है या संकलन-समय स्थिर नहीं है।"इंटरफेस में डिफ़ॉल्ट पैरामीटर मान के रूप में स्थिरांक का उपयोग करना: आईडीई ठीक है लेकिन mxmlc विफल रहता है?

senocular एक अच्छा स्पष्टीकरण और शायद कामकाज देता है, लेकिन मैं कुछ अधिक सुंदर (कमांड लाइन निर्देश की तरह) की उम्मीद कर रहा हूं।

package { 
    public class Constants { 
     public static const CONSTANT : int = 0; 
    } 
} 


package { 
    public interface IInterface { 
      function foo(param : int = Constants.CONSTANT) : void; 
    } 
} 

package 
{ 
    public class Concrete implements IInterface 
    { 
      public function foo(param:int=Constants.CONSTANT):void 
      {   
      } 
    } 
} 
+1

शायद आप कॉन्फ़िगरेशन स्थिरांक का प्रयास कर सकते हैं? http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_21.html – cmann

+0

केवल एक चीज जिसे मैं सोच सकता हूं वह है कि संकलक को प्राप्त करने से पहले स्रोत को पूर्व-प्रोसेस करने के लिए अपनी बैच प्रकार स्क्रिप्ट बनाएं यह, लेकिन शायद यह सबसे अच्छा विचार नहीं है। यह काम करेगा, हालांकि, यह मानते हुए कि आपको सभी बग्स मिल गए हैं :) – Scott

उत्तर

2

सेनोकुलर के अनुसार, यह संकलन आदेश के बारे में सब कुछ है। इस आदेश को सेट करने का कोई स्पष्ट तरीका नहीं है।

आप इस समस्या से बचने के लिए define संकलक विकल्प का उपयोग कर इनलाइन स्थिरांक को परिभाषित कर सकते हैं।

एक और तरीका स्थिरांक युक्त पुस्तकालय बनाना होगा। पुस्तकालयों को उपयोगकर्ता कक्षाओं से पहले शामिल किया गया है। बनाने के लिए एक पुस्तकालय का उपयोग component compiler:

mxmlc -include-libraries lib\Constants.swf -- src\Main.as 

बस जब स्थिरांक बदलने पुस्तकालय पुन: संयोजित करने के लिए मत भूलना, या एक का निर्माण का उपयोग करें:

compc -output lib\Constants.swf -source-path src -include-classes Constants 

जब आवेदन संकलन, कि पुस्तकालय शामिल स्क्रिप्ट जो इसका ख्याल रखती है।


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

Programming AS3 - Interfaces

एक विधि है कि इस तरह के एक समारोह घोषणा को लागू करता है एक डिफ़ॉल्ट पैरामीटर मान इंटरफ़ेस परिभाषा में निर्दिष्ट मान के रूप में ही डेटा प्रकार के एक सदस्य है कि होना आवश्यक है, लेकिन वास्तविक मूल्य नहीं है मैच के लिए।

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

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