embed کردن صحیح فونتهای فارسی در متون TLF

شروع موضوع توسط moghanaraz ‏14 نوامبر 2013 در انجمن برنامه فلش Flash

  1. moghanaraz

    moghanaraz Member

    ارسال‌ها:
    307
    تشکر شده:
    93
    امتیاز دستاورد:
    16
    در مورد امبد کردن فونت در متون TLF پست های مختلفی رو خوندم اما هیچ یک کارساز نبود.
    مشکل من اینجاست وقتی با متون TLF متن فارسی را می نویسم مثلا با فونت B Titr سپس خود فونت را Embed کرده و از کارم خروجی SWF می گیرم.
    حال اگر فایل خروجی را اجرا کنم متن به درستی نمایش داده میشه اما اگه از پوشه فونتها، فونت B Titr را حذف کنم ویا در سیستمی که فونت ب تیتر ندارد، فایل swf را اجرا کنم دیگر متن من با فونت ب تیتر نمایش داده نمیشه!
    در حالیکه من فونت را امبد کردم مشکل این کار از کجا میتونه باشه؟
    نمونه فایل را پیوست کردم ببینید فونت به درستی امبد شده یا نه؟

    راه دیگه برای از بین بردن این مشکل استفاده از تکنیک بریک ا پارت هستش اما چون من از کادرهای متنی ادیت ایبل استفاده می کنم این تکنیک جواب نمیده.
     

    پیوست ها:

    • Embed.rar
      اندازه فایل:
      کیلوبایت 4.8
      نمایش ها:
      39
    نوشته شده توسط moghanaraz در ‏14 نوامبر 2013
  2. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    این دو راه رو آزمایش کنید:
    1- ست کردن تمام مشخصات تکست فیلد مثل اتوساز و تکست فورمت و ... و نهایتا ست کردن گزینه embedFonts برابر true و سپس ست کردن تکست مربوطه در اون
    2- استفاده از یه فایل swf که توش یه Font رو امبد کردید و لود کردن اون و ثبت فونت به صورت موقت در رم...در اینجا ما در librray فایل MyFont.swf یه فونت رو بوجود آوردیم و البته فرض ما اینه که اونو با اسم Hadi_Font لینکیج کردیم (اسمی که تو export for action script می دیم) پس از اون نمونه سازی کردیم و رجیستر کردی...
    PHP:

            var _appDomain:ApplicationDomain=null;
            var loader:Loader=new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeFunc);
            loader.load(new URLRequest("MyFont.swf"));
           
            function completeFunc(evt:Event):void
            {
                _appDomain=loader.contentLoaderInfo.applicationDomain;
                registerFonts("Hadi_Font");
            }
            function registerFonts(fontName:String):void
            {
                Font.registerFont(getFontClass(fontName));
              }
              function getFontClass(id:String):Class
            {
                   return _appDomain.getDefinition(id)  as  Class;
              }
              function getFont(id:String):Font
            {
                   var fontClass:Class = getFontClass(id);
                   return new fontClass    as  Font;
              }
     
     
    نوشته شده توسط ++Hadi++ در ‏14 نوامبر 2013
    moghanaraz از این پست تشکر کرده است.
  3. moghanaraz

    moghanaraz Member

    ارسال‌ها:
    307
    تشکر شده:
    93
    امتیاز دستاورد:
    16
    ممنون هادی عزیز
    هیچکدوم از روشهای بالا جواب نداد. البته من با امتحان و خطا متوجه شدم که اگر قسمت Anti-alias را روی گزینه readability و یا Animation قرار بدیم حتی اگر فونت را امبدد هم نکنیم متنمان در سیستمهای دیگر به درستی نمایش داده می شود. اما اگر Anti-alias را روی Use devise font قرار دهیم چه فونت را امبدد کنیم چه امبدد نکنیم در هر دو صورت متن در سیستم دیگر در صورتی که فونت مورد نظر ما در آنجا موجود نباشد به درستی نمایش داده نخواهد شد و برای نمایش صحیح آن باید از قبل فونت مربوطه نصب شده باشد.
    ممنون میشم در مورد قسمت Anti-alias توضیحی بدهید و آیا روش بالا روش صحیحی هست یا نه؟

     
    نوشته شده توسط moghanaraz در ‏15 نوامبر 2013
  4. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    Anti-alias بیشتر برای Smooth کردن لبه های فونت هست ،تو رندر گرافیکی به وسیله هر موتوری از جمله موتور فلش پلیر ،با Anti Alias کردن ،می تونید لبه های صاف داشته باشید و اگه نباشه ،لبه های تصویر کمی دندونه دندونه می شن و تو فونت هم همینه...Use devise font هم کلا فونت رو امبد نمی کنه و اگه کاربر فونتشو نصب کنه ،از فونت ایشون استفاده می کنه و به هیچ وجه نباید برا امبد فونت از اون استفاده کرد...
     
    آخرین ویرایش: ‏15 نوامبر 2013
    نوشته شده توسط ++Hadi++ در ‏15 نوامبر 2013
    moghanaraz از این پست تشکر کرده است.

به اشتراک بگذارید