سؤال

تخيل أنك إنشاء العرض التقديمي الذي سيتم ترجمتها إلى عشرات اللغات المختلفة ، بما في ذلك تلك مع أحرف غير لاتينية (الصينية على سبيل المثال).العميل العلامة التجارية دليل نمط يفرض أن بعض الخطوط مقبولة لبعض اللغات.المحتوى نفسه هو المطلوب تخريجها ، ذلك أن النص يمكن استبداله دون فتح .fla, أو حفظ إعادة رسم.

لذلك نحن نتحدث ديناميكية حيز s ، المأهولة بالسكان من XML ، مع الخط بدلت لاستيعاب المشاهد لغة - ما هو أكثر شيء مؤلم طريقة لتحميل حيوي فقط الخطوط المطلوبة (بغض النظر عن حجم الملف) و تطبيقها ضروري ؟ أنا أبحث عن الحلول باستخدام فلاش فقط, لا فليكس.

هل كانت مفيدة؟

المحلول 2

أنا بخيبة أمل تماما أن لا أحد يعلم عن هذا - حسنا.أخيرا وجدت شخصا كتبت القليل من الدرجة التعامل مع الخط-عملية التحميل, و أعطى توجيهات بشأن كيفية إنشاء .صناديق الثروة السيادية لتحميل:

فلاش AS3 تحميل الخطوط

ونأمل أن الآخرين سوف تجد هذه مفيدة - اتضح أن تكون الرصاصة السحرية على مشاكلي.

نصائح أخرى

هذا هو قليلا من المتاعب في فلاش ، ولكن من الممكن تماما.ما سوف تحتاج إلى القيام به هو أن "تضمين" الخط داخل منفصلة swf, تحميل هذا swf من التطبيق الرئيسي ومن ثم تسجيل هذا الخط داخل swf aswell.وهذا سوف يسمح لك أن تفعل وقت تحميل من الخطوط.وهذا سوف يتطلب منك إما تحديد الخط في اللغة في التطبيق أو في أي ملفات قمت بتخزين الترجمات التي ربما ليست مثالية, ولكن لا يتم تضمين جميع الخطوط في التطبيق الرئيسي.التي من شأنها أن المبلغ ربما مئات kb الخطوط تحميلها من دون سبب.

هذا بلوق وظيفة جيد المتهدمة ما تحتاج إلى القيام به للحصول على عمل.أنا فعلت هذا بنفسي جدا, لذلك إذا كنت مهتما لا يمكن توسيع هذا المنصب مع بعض الأمثلة لاحقا.

حسنا, سوف بعض كيف يجب أن أعرف ما هي اللغة التي كنت التحميل.اوتوديتيكتيون يمكن أن يكون من الصعب جدا.

على افتراض انك تعرف ما هي اللغة المحتوى يمكنك تسجيل الخطوط لاستخدامها في وقت التشغيل باستخدام الخط.registerFont();مع هذا يمكنك تحميل swf الذي يحتوي على الخط, تسجيل, أنها متاحة للاستخدام في المستقبل في جميع textfields.print("نموذج التعليمات البرمجية");

[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);

لاحظ أنه سيكون لديك لتجميع باستخدام flex مترجم لدعم تضمين العلامة.

أداة جيدة في ذلك الخط.hasGlyphs(), التي يمكنك استخدامها للتحقق من إذا كان حرفا كنت تستخدم تتوفر في الخطوط المضمنة.وهذا يمكن أن تستخدم إما القفز مرة أخرى إلى نظام الخط أو عرض تحذير لك كما المطور (إذا كنت قد نسيت بعض الشخصيات أو أيا كان).Subclassing الحقل النصي أن تفعل هذا الاختيار تلقائيا قد يكون فكرة جيدة.

إذا كان هذا هو الذهاب إلى أن تكون على الانترنت في التضمين الصيني هو شيء يجب أن نفكر مرتين.تضمين جميع الشخصيات سوف تزيد من حجم الملف الكثير و afaik ليست هناك أن العديد من الصينية كاملة الخطوط المتوفرة على أي حال.تقنية أعلاه هو بالطبع لا تزال مفيدة في العديد من اللغات الأخرى.

أولا, تأكد من تعيين التوقعات بحيث لا احد يعتقد انك سوف تستخدم جزءا لا يتجزأ من الخطوط في اللغات الآسيوية مثل الصينية واليابانية.إلا إذا كنت تخطط لتحميل في عدة ميغابايت من الرموز ، عليك أن تكون باستخدام خطوط الجهاز وقف كامل.على هذا النحو ، فمن المعقول أن يكون التوجيهية التي الدرجة الخط الاستخدام - _sans, _serif, _typewriter أو مترجمة في حكمه - ولكن ليس التوجيهية على الخط في حد ذاته.

ثانيا ، في الماضي ، توجهي دائما إلى إقناع الناس أنه في معظم الحالات من المحتمل أنهم أفضل حالا مع خطوط الجهاز على أي حال.باستخدام خطوط الجهاز سوف خفض الوقت اللازم لتطوير وتجنب الأخطاء.أنها سوف تجعل المحتوى الخاص بك تحميل أسرع (إذا عبر الشبكة) ، في جميع الحالات تقريبا سوف تجعل أسرع.في كثير من الأحيان, فإنه سيكون أكثر مقروءا بوضوح أيضا.

العملاء مثل مطالبة جميع الجسم النص في Garamond إضافية البريطانية أو أيا كان, ولكن تأكد من أنهم يعرفون التكاليف.إذا كانت رؤية الضوء ، عليك أن تنقذ نفسك ألم كبير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top