دریافت متن با TLF Text

sabersoft

Active Member
دریافت متن با TLF Text(حل شد)

توجه : با تشکر از دوستان و اساتید مشکل فعلا حل شده و راه حل این مشکل را در اینجا ببینید.
با سلام خدمت دوستان و اساتید گرامی
بنده پدرم با این TLF در اومد!!:shock:
هر روز یک مشکل جدید باهاش پیدا می کنم
جدیدا می خوام متن فارسی رو از کاربر دریافت کنم که یک مشکل عجیب و غریب کار رو به هم میریزه، از همگی عاجزانه درخواست کمک دارم!:sad:
در ساده ترین حالت نوشتمش که بشه مشکلش رو رفع کرد اما نشد.کد زیر رو ببینید :
PHP:
import fl.text.TLFTextField;
import flashx.textLayout.formats.TextAlign;
import flashx.textLayout.formats.Direction;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;

var fm:TextFormat=new TextFormat();
fm.align=TextFormatAlign.RIGHT;
fm.font="Tahoma";
fm.size=18;

var tf:TLFTextField=new TLFTextField;
tf.x=tf.y=50;
tf.multiline=true;
tf.width=300;
tf.height=150;
tf.direction=Direction.RTL;
tf.defaultTextFormat=fm;
tf.border=true;
addChild(tf);
اگه اجرا کنید متوجه می شید که با بردن موس روی فیلد متنی و کلیک کردن نمیشه فیلد رو برای ورود متن فعال کرد و باید روی سمت راست فیلد کلیک کنید تا فیلد متنی فعال بشه.
تصویر زیر را ببینید(خط آبی نشانگر محدوده ای است که با کلیک بر روی آن می توان فیلد را برای ورود متن فعال کرد و با کلیک در حیطه کادر متنی یعنی داخل چارچوب سیاه رنگ فیلد نشانگر موس به حالت ورود متن تبدیل نمی شود!) :
attachment.php

در صورتی که بدون کدنویسی و فقط با گذاشتن یک TFL روی Stage اینکار رو انجام بدید و تنظیمات TLF رو برای راست به چپ تنظیم کنید باز هم این مشکل را دارید.
 

پیوست ها

  • pic1.gif
    pic1.gif
    15.6 کیلوبایت · بازدیدها: 86
آخرین ویرایش:

sabersoft

Active Member
با تشکر از شما
مشکل همچنان باقی است و حل نشد!
آقای فتح الله زاده در سایت flashcenter.ir پروژه هایی رو دارن که این کار رو خیلی زیبا و قشنگ انجام دادن از ایشون درخواست می کنم اگه ممکنه اینجا بنده رو راهنمایی کنند.
 
آخرین ویرایش:

sabersoft

Active Member
کسی از اساتید نیستند راهنمایی کنند؟
اساتید آقا هادی،آقا بهروز،آقا نوید و... لطفا کمک کنید:rose:
 

BehrouzPc

پــــادشــاه فــلــــش
سلام
در مورد اول اگر متنی پیش فرض در فیلد باشد تا جایی که متن باشد مشکلی نیست و می توان بر روی آن کلیک نمود
اگر فیلد را در حالت Justify قرار دهید متن درون آن کل آن را پوشش می دهد و در نتیجه کاملا درست تمام باکس قابل انتخاب برای تایپ خواهد بود

راه دیگر قرار دادن بر روی Justify Center هست که در این صورت فضای خالی به دو طرف تقسیم می شود و در مواردی مشکل حل می شود

شما برای رفع این باگ می توانید مقدار پیش فرض به فیلد بدهید و در زمان کلیک بر روی آن کل محتوا را حذف کنید و در صورتی که محتوایی وارد نشد و در خارج باکس کلیک شد باز هم محتوای پیش فرض را به فیلد بدهید


همه این ها راه هایی قدیمی تر بود ، امروز راه جدیدی را با تست پیدا کردم ، فیلد متنی را انتخاب کنید از بخش Display گذینه Render را روی Cache as Bitmap قرار دهید ، مساله تقریبا کاملا حل خواهد شد.


موفق و پیروز باشید
 
آخرین ویرایش:

sabersoft

Active Member
سلام
در مورد اول اگر متنی پیش فرض در فیلد باشد تا جایی که متن باشد مشکلی نیست و می توان بر روی آن کلیک نمود
اگر فیلد را در حالت Justify قرار دهید متن درون آن کل آن را پوشش می دهد و در نتیجه کاملا درست تمام باکس قابل انتخاب برای تایپ خواهد بود

راه دیگر قرار دادن بر روی Justify Center هست که در این صورت فضای خالی به دو طرف تقسیم می شود و در مواردی مشکل حل می شود

شما برای رفع این باگ می توانید مقدار پیش فرض به فیلد بدهید و در زمان کلیک بر روی آن کل محتوا را حذف کنید و در صورتی که محتوایی وارد نشد و در خارج باکس کلیک شد باز هم محتوای پیش فرض را به فیلد بدهید


همه این ها راه هایی قدیمی تر بود ، امروز راه جدیدی را با تست پیدا کردم ، فیلد متنی را انتخاب کنید از بخش Display گذینه Render را روی Cache as Bitmap قرار دهید ، مساله تقریبا کاملا حل خواهد شد.


موفق و پیروز باشید

بی نهایت سپاسگزارم:rose::rose::rose::rose:
گرچه بر خلاف قوانین است اما دیدم کلیک کردن تشکر به تنهایی کافی نیست:oops:
فقط اگر بشه در حالت کد فکری براش کرد و مشکلو رفع کرد که عالی میشه!!
 
آخرین ویرایش:

BehrouzPc

پــــادشــاه فــلــــش
بی نهایت سپاسگزارم:rose::rose::rose::rose:
گرچه بر خلاف قوانین است اما دیدم کلیک کردن تشکر به تنهایی کافی نیست:oops:
فقط اگر بشه در حالت کد فکری براش کرد و مشکلو رفع کرد که عالی میشه!!
برای نمونه توسط کد این مورد را تست کنید

PHP:
yourTLF.cacheAsBitmap = true;
 
PHP:
if (txt.text.length == 0)
{
	txt.direction = "ltr";
}
else
{
	txt.direction = "rtl";
}

txt.addEventListener(FocusEvent.FOCUS_IN,f_in);
function f_in(e:FocusEvent)
{
	txt.direction = "rtl";
}
txt.addEventListener(FocusEvent.FOCUS_OUT,f_out);
function f_out(e:FocusEvent)
{
	if (txt.text.length == 0)
	{
		txt.direction = "ltr";
	}
	else
	{
		txt.direction = "rtl";
	}
}
 

yaa110

کاربر فعال
با تشکر از همه دوستان بنده هم این مشکل را در نسخه CS5.5 داشتم که برای رفع اون در حالت دیزاین با افزایش Padding B اون را حل می کردم. روش های پیشنهادی دوستان را هم چک کردم ولی موفقیت آمیز نبود. فکر می کنم بهتره به عنوان باگ به ادوب اعلام کنیم البته فکر نمی کنم براشون مهم باشه :-?
 

sabersoft

Active Member
سلام
متاسفانه بنده امروز در فلش تمام روش هایی را که دوستان گفتند امتحان کردم اما هیچکدوم جواب نداد!!!
و این در صورتی بود که بار اول روش آقا بهروز کاملا مشکل رو حل کرد
حالا موندم بقیه پروژه رو که تا نصفه رفته چکارش کنم؟!:sad::-?
دارم ترکیبی کار می کنم ببینم جواب میده
 
آخرین ویرایش:

sabersoft

Active Member
حل شد

بالاخره اگه خدا بخواد یه راه حل نهایی رو با آزمون و خطا پیدا کردم البته همون روش آقا نویده با کمی اضافات.

روی فیلد متنی کلیک کنید و در قسمت تنظیمات :

  1. در قسمت Paragraph بخش Direction را روی Right to Left قرار دهید(بقیه تنظیمات مهم نیست مثلا Align فقط راست باشه یا Justify راست).
  2. در قسمت Container And Flow بخش Direction را روی Right to Left قرار دهید و در بخش Padding قسمت B یا Bottom را روی 200 که حداکثر مقدار آن است بگذارید.
  3. برای اینکه متن داخل فیلد اسکرول نشه کد زیر را در قیمت اکشن یا در کلاس مربوطه یا هرجا ... اضافه کنید(بر فرض اینکه نام فیلد main_txt باشد):
PHP:
import fl.text.TLFTextField;
import flash.events.Event;

var main_txt:TLFTextField;
main_txt.addEventListener(Event.SCROLL, disableScroll);
function disableScroll(e:Event):void {
    TLFTextField(e.target).scrollV = 0;
}

چند بار تستش کردم فقط به دو مشکل برخوردم
1.که وقتی از فونت embed استفاده نمی شه مشکل پیدا می کنه.
2.ارتفاع فیلد متن با اندازه فونت یه نسبتی داره اینکه وقتی ارتفاع فیلد متنی رو خیلی زیاد می کنید به مشکل بر می خورید ارتفاع فیلد متنی به اندازه 5 خط متن باید باشه و اگه بیشترش کنید مشکل نمایان میشه!

امیدوارم اشکالات دیگه ای کشف نشه!
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا