ryanday के अंक को संबोधित करते हुए मैं अतिरिक्त 3 बाइट्स, लेकिन कुछ नोट व्याख्या नहीं कर सकते ...
अतिरिक्त सामान की वजह से ActionScript डिजाइन पैटर्न पुस्तक भी इस हतोत्साहित
हाँ, पेज 115 पर, लेकिन मुझे लगता है कि यह गलत है और उस प्रभाव को इरेटा सबमिट किया गया है।
एक्शनस्क्रिप्ट 3 spec का कहना है कि यदि आप '*' का उपयोग करते हैं तो पैकेज से सभी सार्वजनिक नाम आयात किए जाएंगे। तो एक हिट है,
ऐसा लगता है, लेकिन मैं व्याख्या और हिट से असहमत हूं। यह कहता है: "पैकेज सदस्यों के नाम दृश्यमान ..." (in full) बनाये गये हैं।इस संदर्भ में, यह कंपाइलर और एडिटर टूल्स के सदस्यों को दृश्य के नाम बनाने का जिक्र कर रहा है, संकलित एसडब्ल्यूएफ के भीतर दिखाई नहीं दे रहा है। यानी का मतलब वर्गों को एसडब्ल्यूएफ में संकलित नहीं किया जाता है - जब तक वे वास्तव में उपयोग नहीं किए जाते हैं (उस प्रकार का एक चर घोषित किया जाता है)।
इसे देखने का एक और तरीका, आप मैन्युअल रूप से flash.display.MovieClip
आयात कर सकते हैं। लेकिन अगर आप मूवीक्लिप का कोई उदाहरण नहीं बनाते हैं, तो मूवीक्लिप क्लास अंतिम एसडब्ल्यूएफ में संकलित नहीं होगा।
अपने आप को संतुष्ट करने के लिए, मैं के रूप में @secoif ने सुझाव दिया 3 तरीके में निम्नलिखित HelloWorld संकलित, outputting लिंक रिपोर्ट ...
package
{
import flash.display.Sprite;
import flash.text.TextField;
public class ASHelloWorld extends Sprite
{
public function ASHelloWorld()
{
var tf:TextField = new TextField();
tf.text = "Hello World!";
addChild(tf);
}
}
}
पहले, लिखा के रूप में, लिंक की रिपोर्ट:
<report>
<scripts>
<script name="~/Documents/eclipse3.5carbonFbPlugin-FX4-LS10/ASHelloWorld/src/ASHelloWorld.as" mod="1278415735000" size="682" optimizedsize="344">
<def id="ASHelloWorld" />
<pre id="flash.display:Sprite" />
<dep id="AS3" />
<dep id="flash.text:TextField" />
</script>
</scripts>
<external-defs>
<ext id="AS3" />
<ext id="flash.text:TextField" />
<ext id="flash.display:Sprite" />
</external-defs>
</report>
दूसरा, लिंक रिपोर्ट फ़ाइल को नष्ट करने के लिए और आयात बदलने के लिए:
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.text.TextField;
स्वच्छ निर्माण, और लिंक repor टी बिल्कुल वही दिखता है। वही आकार, वही अनुकूलित, समान लिंक किए गए वर्ग।
तीसरा, लिंक रिपोर्ट फ़ाइल को नष्ट करने के लिए और आयात बदलने के लिए:
import flash.display.*;
import flash.text.*;
स्वच्छ निर्माण, और लिंक रिपोर्ट बिल्कुल वैसा ही लग रहा है। वही आकार, वही अनुकूलित, समान लिंक किए गए वर्ग।
केवल स्प्राइट और टेक्स्टफिल्ड कक्षाएं प्रत्येक मामले में इसे एसडब्ल्यूएफ में बनाती हैं।
डिस्क पर वास्तविक एसडब्ल्यूएफ फ़ाइल आकार को देखते हुए, 3 संस्करणों पर मामूली (1 या 2 बाइट) भिन्नता प्रतीत होती है। रायडय के पद में निर्दिष्ट बड़े एसडब्ल्यूएफ के मुकाबले कोई भी बुरा नहीं।
बस एक नोट: भले ही आप अपने कोड में पूरी तरह से योग्य पथ का उपयोग करते हैं, आपको आयात की आवश्यकता है या अन्यथा संकलक शिकायत करेगा। –
सच है, मैं इसे भूल गया। लेकिन यह एक बिंदु के रूप में अधिक मतलब था कि क्यों हमारे पास आयात विवरण हैं, क्योंकि विकल्प बहुत परेशान होगा। –
कोई समस्या नहीं है। और हाँ, यह एएस 2 में व्यवहार था। यदि आपने पूरी तरह से योग्य नाम का उपयोग किया है, तो आप आयात को छोड़ सकते हैं। –