2012-10-19 19 views
6

मैंने फ़्लैश में फ़ॉन्ट एम्बेडिंग से संबंधित बहुत सारे प्रश्न देखे हैं और मुझे मेरी समस्या का उत्तर नहीं मिल रहा है।एएस 3 फ़ॉन्ट एम्बेडिंग

मैं फ़ॉन्ट एसएफएफ से फ़ॉन्ट लोड करता हूं और उन्हें उच्च स्तर पर पंजीकृत करता हूं ताकि उन्हें बाल swfs में उपयोग किया जा सके। मुद्दा यह है कि बाल swf इन फोंट को भी एम्बेड कर सकता है, लेकिन स्पष्ट रूप से ऐसा नहीं, जिसका अर्थ है कि वे केवल एम्बेडेड हैं क्योंकि बच्चे के swf में फ़ील्ड हैं जो फ़ॉन्ट के कुछ वर्णों का उपयोग करते हैं। इसका अर्थ यह है कि बच्चे में टेक्स्ट फ़ील्ड माता-पिता या दादाजी के किसी स्तर पर पंजीकृत एम्बेडेड पूर्ण सेट की बजाय अपूर्ण एम्बेडेड फ़ॉन्ट का उपयोग करते हैं। इसके अलावा इसका मतलब है कि इस बच्चे के बच्चे बनने वाले swfs को पूरा फ़ॉन्ट नहीं मिलेगा।

मेरा प्रश्न: क्या किसी भी परिस्थिति में, एसएफएफ में फ़ॉन्ट्स को एम्बेड करने के लिए संकलित करने के लिए कोई तरीका नहीं है? यदि नहीं है तो एक उपकरण है जो एक संकलित एसएफएफ से एम्बेडेड फोंट को हटा देता है?

यहाँ कुछ चीजें मैं करने के लिए सोचा दे दिया है है/अब तक देखा:

  • ऐसा लगता है जैसे कि प्रत्येक फ़ॉन्ट वर्ग एक ApplicationDomain से जुड़ा हुआ है। (इसकी पुष्टि सहायक होगी)
  • टेक्स्ट फ़ील्ड पर डिवाइस फोंट का उपयोग करने से कोई फोंट एम्बेड नहीं होगा। (मेरे लिए कोई विकल्प नहीं है क्योंकि मुझे माता-पिता swf से रनटाइम पर फोंट एम्बेड करने के लिए फ़ील्ड चाहिए।)
  • मुझे फोंट को अपंजीकृत करने का कोई तरीका नहीं मिल रहा है या पैरेंट फोंट का उपयोग करने के लिए बस लोड किए गए बच्चे के swfs को बताएं, जो होगा लोड किए गए बच्चे swfs पर लागू करने के लिए उपयोगी है।
  • बच्चे को एक अलग संदर्भ में लोड करना संभव हो सकता है जो कि बच्चों की परिभाषाओं को ओवरराइड करने के लिए फ़ॉन्ट्स की मूल परिभाषाओं को अनुमति देता है। (या दो परिभाषाएं होंगी और यदि ऐसा कोई प्राथमिकता लेता है?)
  • बच्चे की लाइब्रेरी से संपत्तियां लोड करना और उन्हें मंच पर जोड़ना फ़ॉन्ट की मूल परिभाषा प्राप्त करेगा। (यह समझ में आता है क्योंकि संपत्ति बच्चे के डोमेन के बाहर बनाई गई है)
  • एक संभावित समाधान एसएफएफ के संकलन के लिए टेक्स्टफील्ड में किसी भी वर्ण को जोड़ने के लिए नहीं हो सकता है, लेकिन यह वास्तव में एक विकल्प नहीं है क्योंकि मुझे चाहिए किसी भी फ़ॉन्ट का उपयोग कर स्थिर पाठ।

मैंने अपनी दिमाग में समस्या क्या है, इसकी गलत परिभाषा शुरू कर दी है, इसलिए कृपया कुछ कदम उठाएं और मुझे समस्या पर एक अलग परिप्रेक्ष्य दें। अब तक ऐसा लगता है कि ऊपर दिए गए प्रश्न का उत्तर देने का सही सवाल है और यदि इसका कोई समाधान है, तो मेरी सभी समस्याएं दूर हो जाती हैं।

धन्यवाद!

+0

मैं थोड़ी सी चीज हूं, मैंने सोचा कि मैं आपका प्रश्न समझ गया हूं, और जवाब लिखने के बीच में था, तो मुझे एहसास हुआ कि अगर मैं पूरी तरह से आपके प्रश्न को समझता हूं तो मुझे 100% यकीन नहीं था। क्या आप कुछ कोड प्रदान कर सकते हैं, यह मेरे लिए एक स्पष्ट तस्वीर पेंट करने में मदद करता है। – Taurayi

+0

आप प्रत्येक फ़ॉन्ट को अपने स्वयं के एसएफएफ में एम्बेड करना चाहते हैं, फिर आवश्यक होने पर उस swf गतिशील रूप से लोड करें? –

+0

मैं किसी भी दृश्य swfs लोड होने से पहले लोड किए गए किसी भी फोंट को लोड करना चाहता हूं। वह हिस्सा एक मुद्दा नहीं है। मुद्दा बच्चे को swfs से फोंट प्राप्त कर रहा है, इसलिए बच्चे के swfs में लोड किए गए फ़ॉन्ट्स का उपयोग बच्चे के swfs में किया जा सकता है और फ़ॉन्ट की बाल swfs परिभाषा के साथ संघर्ष नहीं कर सकता है। – Jordan

उत्तर

0

बाहर कर देता है इस फ्लैश व्यावसायिक के अपने संस्करण के साथ एक बग है। मैंने एक अद्यतन किया और रनटाइम साझा फ़ॉन्ट अब संभव हैं। मैं शायद फोंट के लिए एक खराब यूआरएल पर साझा फ़ॉन्ट को इंगित करूंगा, तो फोंट मूल एप्लिकेशन डोमेन से आएंगे क्योंकि वे बच्चे के swfs में संकलित नहीं हैं। मैं अब फ्लैश प्रोफेशनल सीएस 5.5 11.5.1 का उपयोग कर रहा हूं। मैं CS5.5 11.5.0 का उपयोग कर रहा था। मेरा समय बर्बाद करने के लिए

http://forums.adobe.com/message/3926344

धन्यवाद एडोब।

+0

जानना अच्छा है, ठीक है, उन्होंने इसे ठीक और दस्तावेज किया है, है ना? –

0

यदि मैं समझ में सही हूं, तो आप उन सभी फ़ॉन्ट्स को हटाना/अनधिकृत करना चाहते हैं जो कि पहले से लोड किए गए इस विशिष्ट फ़ॉन्ट के संस्करण के रूप में पूर्ण नहीं हैं, लेकिन किसी अन्य एसएफएफ में एम्बेडेड हैं?

एम्बेडेड प्रत्येक फ़ॉन्ट एक वर्ग बनाता है, लोडर क्लास के माध्यम से लोड होने वाले प्रत्येक swf को नामस्थान क्लैश को रोकने के लिए डिफ़ॉल्ट रूप से अपने स्वयं के एप्लिकेशन डोमेन में लोड किया जाता है, लेकिन आप लोडर को वर्तमान एप्लिकेशन डोमेन में सबकुछ लोड करने के लिए मजबूर कर सकते हैं लोडर के लोड() विधि के लोडर संदर्भ «पैरामीटर के साथ। तो इस तरह आप एक ही नामस्थान में कक्षाओं को एक-दूसरे के साथ ओवरराइड करने के लिए मजबूर करने का प्रयास कर सकते हैं, लेकिन आप नियंत्रित नहीं कर सकते कि किस वर्ग को फेंकना है, इसका मतलब है कि आप यह जांच नहीं सकते कि कौन से फ़ॉन्ट में अधिक ग्लिफ हैं। (हो सकता है कि यह ओवरराइडिंग की बजाय त्रुटियों को फेंक दे और बिल्कुल भी नहीं चल रहा है, मैं इस बारे में निश्चित नहीं हूं)।

दूसरी तरफ आपको सवाल करना चाहिए कि बच्चे के एसएफएफ़-फाइलों में फोंट वास्तव में कैसे एम्बेडेड होते हैं।मैं कोई दूसरा रास्ता के रूप में फोंट एम्बेड करने के लिए की तुलना में जानते हैं:

* .fla-फाइलों में

»पुस्तकालय प्रतीक«, या flashbuilder के कोड में या इस तरह के रूप में फ्लेक्स: [Embed(source="c:/windows/fonts/verdana.ttf", fontFamily="Verdana", embedAsCFF="false")],

या इस:

@font-face { 
    src: url("../assets/MyriadWebPro.ttf"); 
    fontFamily: myFontFamily; 
    advancedAntiAliasing: true; 
} 

mxml फ़ाइलों में। तो (जो मुझे लगता है) उत्पन्न होने वाले वर्ग का परिणामी नाम डेवलपर द्वारा दिए गए फ़ॉन्ट-फ़ैमिली «प्रॉपर्टी (या यहां तक ​​कि और भी सेटिंग्स) पर निर्भर करता है, इसका मतलब है कि वही फ़ॉन्ट क्लास- सेटिंग्स के माध्यम से नाम भिन्न हो सकता है।

इसके अलावा Font.unregisterFont() विधि भी नहीं है, तो इसका प्रबंधन कैसे किया जाए, यह एक अच्छा सवाल रहता है, बस अगर आपको एक ही फ़ॉन्ट क्लास मिल सकता है (शायद RegExp एक दोस्ताना सहायक बन जाता है)।

मुझे लगता है कि यह ठीक से हल करने के लिए आपको संकलन समय पर नियंत्रण की आवश्यकता है, xml आधारित * .xfl प्रोजेक्ट फ़ाइलों का उपयोग करने में मदद मिल सकती है लेकिन संदर्भित फ़ॉन्ट-फ़ाइल के अलावा भी एक अलग नाम हो सकता है।

एक अच्छा समस्या, अच्छी किस्मत

+0

प्रतिक्रिया के लिए धन्यवाद। फ़ॉन्ट एम्बेडिंग तब भी होती है जब गतिशील टेक्स्ट फ़ील्ड एनीमेशन या पठनीयता के लिए एंटी-उपनाम पर सेट होते हैं, जो वास्तव में परेशान होता है क्योंकि तब आपको केवल फ़ील्ड में दर्ज कुछ वर्ण मिलते हैं। इसके अलावा स्थिर पाठ फ़ॉन्ट की परिभाषा का कारण बनता है जिसे किसी भी अक्षर के साथ एसएफएफ में संकलित नहीं किया जाता है, इसलिए एक स्थिर टेक्स्ट फ़ील्ड भी उस फ़ॉन्ट की मूल परिभाषा का उपयोग करने से उस swf (या एप्लिकेशन डोमेन) में कुछ भी अवरुद्ध करता है।मैंने आज पहले फ्लैस को अनजिप करना शुरू कर दिया लेकिन यह पुष्टि करने के लिए धन्यवाद कि यह एक संभावित समाधान है। – Jordan

+0

यह ज्ञात नहीं है, लेकिन – philipp

0

मैं फ्लैश के साथ फोंट का उपयोग कर समस्याओं का एक बहुत कुछ था। यह अभी भी विभिन्न तरीकों से अलग-अलग ब्राउज़रों के साथ एचटीएमएल पर एक समस्या है।

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

https://github.com/tbwa/AS3-Toolkit/tree/master/src/com/utils/text

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