2009-11-16 9 views
5

गायब हो जाता है यह उम्मीद है कि एक नई समस्या है या मुझे कुछ स्पष्ट याद आ रही है। कृपया सहायता कीजिए! मैं अपने एएस 3 एप्लिकेशन में एक फ़ॉन्ट एम्बेड कर रहा हूं। मैं सब कुछ किताब और यह आधा काम कर रहा हूँ।AS3 में फ़ॉन्ट एम्बेड करना - डायनामिक टेक्स्ट फ़ील्ड

अपने मुख्य वर्ग में,

[Embed(source="Art/moolbor.ttf", fontFamily="MoolEmbed", 
     mimeType="application/x-font")] 
    var MoolEmbed:Class; 

फिर बाद में मेरी कोड में:

var newFormat:TextFormat = new TextFormat(); 
    newFormat.font = "MoolEmbed"; 
    newFormat.size = 20; 
    newFormat.color = 0xFCF374; 

    year.autoSize = TextFieldAutoSize.LEFT; 
    year.text = "Hello World"; 
    year.embedFonts = true; 
    year.setTextFormat(newFormat); 
    year.antiAliasType = "advanced"; 

यह पूरी तरह से ठीक काम करता है, और पाठ खूबसूरती से दिखाई देता है। मैं इसे घुमा सकता हूं, इसके लिए जोर लागू कर सकता हूं, और यह अच्छी तरह से एंटीअलाइज्ड है।

year.text = "And a second hello world"; 

जैसे ही इस कोड को शुरू हो रहा है, पाठ फ़ील्ड पूरी तरह से गायब हो जाता है: कोड में बाद में - समस्या यह है कि पाठ फ़ील्ड गतिशील है। मैं

year.border = true; 

पर बारी और मैं देख सकते हैं कि पाठ फ़ील्ड अभी भी वहाँ है, लेकिन यह आकार में बस कुछ ही पिक्सल के लिए नीचे सिकुड़ गई है है। सोच रहा है कि यह ऑटोसाइज गड़बड़ चीजें थी,

//year.autoSize = ...; 

वही समस्याएं। सोच में एम्बेड किया जा सकता है, मैं लाइन बाहर टिप्पणी की:

//year.embedFonts = true; 

और पाठ फ़ील्ड काम कर स्थिति पर लौट आता है, लेकिन (जाहिर है) खो देता है यह alphas और रोटेशन करने की क्षमता है।

कोई विचार क्या चल रहा है?

उत्तर

13

मैंने संभावित कारणों पर एक लंबी बातचीतत्मक प्रविष्टि लिखी क्योंकि यह काम नहीं करेगा। लेकिन जैसा कि मैंने आपको कोड पढ़ा है, मुझे लगता है कि मैंने त्रुटि देखी है।

year.setTextFormat(newFormat); 

करने के लिए::

year.defaultTextFormat = newFormat; 

कि यह करना चाहिए पंक्ति बदलें!

+0

बहुत बहुत धन्यवाद! इससे पहले कभी भी डिफ़ॉल्ट TextFormat प्रॉपर्टी का उपयोग नहीं किया ... हर दिन कुछ नया सीखें! –

+1

मेरे पास एक ही समस्या है, यह समाधान अभी भी मेरे लिए वास्तव में काम नहीं कर रहा है। Fonts.enamurate मेरे एम्बेडेड फ़ॉन्ट दिखाता है। –

+0

धन्यवाद, मुझे काम के बहुत सारे बचाया। हालांकि, मेरे मामले में मुझे परिवर्तन के बजाय जोड़ना पड़ा। – Frank

0

आपको वैश्विक फ़ॉन्ट सूची के साथ अपना फ़ॉन्ट पंजीकृत करने की आवश्यकता है।

आयात:

import flash.text.Font; 
अपने निर्माता में

:

Font.registerFont(MoolEmbed) 
+0

कोई पासा नहीं; व्यवहार नहीं बदलता है। : सी –

0

आप दूसरी बार के लिए पाठ गुण सेट करने के बाद सुनिश्चित करें कि आप setTextFormat (newFormat) फिर से फोन कर सकते हैं।

3

के लिए, अन्य दो सुझावों का एक संयोजन defaultTextFormat फ्लॉप काम के रूप में अपने निर्माता में

import flash.text.Font; 

काम किया:

Font.registerFont(MoolEmbed) 

और फिर

आप के लिए पाठ गुण सेट करने के बाद दूसरी बार सुनिश्चित करें कि आप setTextFormat (newFormat) को फिर से कॉल करें।

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