اونایی که فکر می کنند Flash با فارسی مشکل داره اینو ببینند که مشکلات تمام شد

CMAX

Member
سلام


اگه حوصله خوندن متن زیر رو ندارید و می خواهید ببینید چه خبر شده لینک زیر را ببینید هر چند بهتره حتما
متن ادامه رو برای آگاهی و کار با برنامه بخونید .


Persian Text Composer

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

من هم از همان زمان به صورت مستمر روی یک پروژه به اسم PTC با چند نفر دیگه از دوستان شروع به کار کردیم
و در تلاش برای تصحیح مشکلات این سیستم بودیم تا بلاخره نتیجه کار چیزی شد که کارایی بالا و قابلیت اجرای
کامل دارد و امکان هر نوع انعطاف پذیری رو برای برنامه اصلی ایجاد می کند حتی فکر کنید که نوشته های
Dynamic شما به صورت TypeWrite نوشته شود و یا بچرخند و یا هر نوع انیمیشن
دیگری را به تک تک حروف فارسی بدهید و مشکلی ایجاد نشود

یا مثلا دوست دارید که برای تکست فارسی Dynamic یک منظم کننده Justify داشته باشید تا به صورت خودکار مثل
Word عرض جملات را تنظیم کند .

از طرفی همانطور که می دانید در صورت وارد کردن نوشته های فارسی با کلمات انگلیسی کلیه متن به هم می ریزد و جملات و کلات جا به جا می شود اما
این برناه به راحتی تمای کلما انگلیسی را و فارسی را در جای صحیح خود جای می دهد

خوب شاید بهتر باشد یه نگاهی به نتیجه نهایی که حتی Beta هم به حساب نمی آید و تنها یک Test از کل پروژه است بیاندازید

تمامی نوشته های فارسی از XML لود می شود و بعد از ویرایش درون TF جای می گیرد .

برای دیدن به فلش پلیر 8 و بالاتر احتیاج دارید


Persian Text Composer


به نکات زیر توجه کنید

اولا این Class در حد اولیه است .

دوما برنامه مجبور است برای هر سایز و هر تنظیمی دوباره کل پروسه را تکرار کند و ممکن
است مشکلاتی ایجاد شود که البته در روی سایت و زمان بکار گیری یکبار تنظیم می شود و بس اما ایجا هر بار
تنظیم یعنی انجام کل پروسه

ثانیا در صورت ارسال ورودی بد خروجی بد دریافت خواهید کرد سعی کنید تا نوشته ها را درست و بدون
Break line یا "r\" و به عبارتی بدون Enter و حتی بدون پاراگراف بندی وارد کنید و همه نوشته را طی یک
خط به برنامه بدهید خود برنامه آن را بر اساس اندازه انتخاب شده می شکند و در TF جای می دهد

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


مثلا نوشته زیر را امتحان کنید :
----------------------------------

سلام من PTC را Test می کنم و این یک Dynamic Text است که Copy کرده و اینجا Paste نمودم



موارد عمومی
----------------------------------------------------------------------

انداره ها را تغییر دهید و بعد از هر تغییر کلید Enter را بزنید نوشته های دیگری هم لود شده است و می توانید
آنها را هم ببینید برای این کار از کلید های Arrow استفاده کنید

کلید های زیر میانبر های برنامه هستند و اصلی ترین آنها Ctrl + Speace است

UP -- Right -- Down --- Left --- Enter ---- Ctrl+Speace


----------------------------------------------------------------------

توجه : کلید های میانبر در صورتی کار می کند که حداقل یک بار بر روی SWF با موس کلیک چپ کرده باشید
و به عبارتیFocus باشد


----------------------------------------------------------------------


Persian Text Composer


موفق باشید

--------------------------CMAX
 
آخرین ویرایش:
  • Like
Reactions: SME

smmousazadeh

Well-Known Member
خسته نباشيد و دستتون هم درد نكنه
اما يه قضيه هست اونم اينكه اگه TF رو ديناميك با فونت tahoma در نظر بگيريد (و چون tahoma از utf8 پشتيباني ميكنه) وقت اجرا اگر كار شما در IE باز بشه اتوماتيك مشكل حل ميشه
 

CMAX

Member
خسته نباشيد و دستتون هم درد نكنه
اما يه قضيه هست اونم اينكه اگه TF رو ديناميك با فونت tahoma در نظر بگيريد (و چون tahoma از utf8 پشتيباني ميكنه) وقت اجرا اگر كار شما در IE باز بشه اتوماتيك مشكل حل ميشه

سلام دوست من

من دقیقا متوجه منظورتون نشدم و خوشحال می شوم اگه یک ک بسطش بدهید

اول اینکه فرق اینکه توی IE باشه به FF چیه ؟
و دوم اینکه کدوم مشکل حله ؟

یعنی منظور شما اینه که می شود بدون این کار هم به صورت Dynamic فارسی نوشت و البته نوشته ما کلمات انگلیسی هم داشته باشد ؟

مثلا شما می توانید نوشته زیر را بدون اشکال از یک XML لود کنید و درون یک TF درست نمایش دهید

سلام من PTC را Test می کنم و این یک Dynamic Text است که Copy کرده و اینجا Paste نمودم
 
آخرین ویرایش:

fafa^mx

Member
آدم و یاد فلش RTL مینداخت! ولی Nice Job! بد نیست در جریانم قرار بدی که رطی به فلش RTL داشته یا نه!! چون Open Source بودنه کاره ما بعضی وقتی آدمو به شک میندازه!
 

fafa^mx

Member
اون دوستمونم اون بالا RTL ، Justification ، Multiline و اینارو ول کرده تو Unicode ولو شده!
 

CMAX

Member
fafa^mx لطفا با این Id با من تماس بگیرید خوشحال می شم کمی با هم صحبت کنیم worst_season
 

smmousazadeh

Well-Known Member
اگه بخواهيد از Xml بخونيد و نمايش بدهيد خود فلش اينكار رو انجام ميده
اگه ممكنه mailet رو بده برات بفرستم
البته اينم بگم من با فايل text امتحان كردم جواب داد پس ميتونه با xml هم كار كنه
 

CMAX

Member
تا اونجایی که من می دونم فلش به هیچ عنوان از RTL پشتیبانی نمی کند و حتی زمانی که وبلاگ های ماکرومدیا برای
ورژن جدید flash از کاربران می خواستند تا درخواستهای خودشون رو جهت اضافه شدن به Flash 9 اونجا بگن حجم
زیادی و بیشترین تعداد کامنت و درخواست و استمداد برای پشتیبانی از RTL بود و نمی دونم چطور شما می گی
خود flash اینکار رو انجام می دهد
این دو حالت داره یا شما متوجه RTL نشدی و خوب این موضوع اینجوری حل می شود که در بالا گفتم
شما برای من اون نوشته که برای تست PTC گذاشته بود رو توی یک TF به من درست نشون بده
حالت دوم هم اینکه Flash شما با نرم افزای که ما می شناسیم فرق داره لطفا اونو به ما هم محض رضای خدا
قرض بده

شما لطفا بیا و برای من فقط توجیح بده چرا ما یک وب سایت فارسی Dynamic با GUI تحت فلش نداریم و اینهمه وبسایت و وبلاگ
انگلیش هست چرا حتی فکر طراحی یک وب سایت فول فلش با استفاده از Db برای ما ایرانی ها جز رویا هاست
انگار شما تو این سرزمین زندگی نمی کنی

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

CMAX

Member
سلام
اول جناب smmousazadeh

ممنون از نمونه ای که گذاشته بودید اما من به شما گفتم این نوشته یعنی

سلام من PTC را Test می کنم و این یک Dynamic Text است که Copy کرده و اینجا Paste نمودم

را از یک فایل لود کنید و در یک TF نمایش دهید اما شما این نوشته را در فایل گذاشتید و به عبارتی خودتان جای کلمات
و حروف را تنظیم کردید

ميكنم paste كرده و اينجا copy است كه من dynamic Text كرده و اين يك test را ptc سلام من

خودتان آن نوشته را کپی کنید و اینجا تو فرم که مثل XML است پیست کنید و ببینید که دقیقا
نوشته بالا شماره دو را خواهید یافت و البته شما که نمی خواهید بنشینید و یک متن 1200 کلمه را تک تک درست
کنید و اگر روش شما قابل اجرا بود دیگر زحمات افرادی مثل پدرام و فرید و حتی من نوعی و دوستانم دیگر چه ارزشی دارد

که ما انگار وقت تلف کردیم اما خوب دریغا از گوشی که بشنود و باور کند و شما هم خودتان هر طور که دوست
دارید فکر کنید و باور کنید که با روش شما می شود و من منتظر سایت شخصی شما با روش سخصی شما هستم

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

اما جناب موسی زاده من و کسای دیگه که روی RTL کار کردیم به صورت درست نسبت به این مسئله آگاهیم که
به صورت کاربردی هیچ راهی غیر از سیستمی که من اجرا کرده بودم وجود ندارد و خودتان هم مطمئنا می دانید
اما خوب قبول کردن بعضی چیزها برای بعضی افراد سخت است و عجبا از شما که همیشه در تمامی تاپیک ها
نسنجیده حرف می زنید و این درست نیست .

اما دوست دیگر مان saman_fla_pro

عزیزم اگه منی که 6 سال تمام زندگی ام را صرف این دنیا کردم نتوانم از کارم محافظت کنم دیگر چه حاصل از
کرده و چه برداشتی از کشت .
اقا سامان حرفه ای اگه تو یک کلمه از نوشته های اون فایل FLA فهمیدی و اگه تونستی برای یک کار دیگر
استفاده کنی بیا تا من تمامی سورس اصلی Frame Work که حاصل کار 3 نفر دیگر هم غیر از من است و نزدیک
180000 خط کد بدون هیچ ایرادی برای ترسیم Control ها و Component های فلش می باشد که همگی RTL
را ساپرت می کنند را تقدیم شما دوست عزیز کنم و خوب بازم دمت گرم عزیز .

می دونی همینکه این کار رو می کنی یعنی کار من خیلی ارزش داشته و یا حداقل ارزش اونو داشته که تو وقت
بزاری و سعی کنی تا به سورس برسی و این برای من واقعا جای خوشحالی دارد .

در ضمن شما به من خدمت بزرگی کردی و حداقل نشون دادی که اولا من همه نوشته ها را از XML می خونم و دوما چطور فقط با 150 خط برنامه
می شه بزرگترین مشکل فلشکارای ایران را حل کرد و این یعنی قدرت ما 4 نفر دمت گرم که عدو سبب خیر شود اگر خدا بخواهد ...





-------------------------------------------------------------------
در فایل زیر من نوشته آقای موسی زاده را یعنی

ميكنم paste كرده و اينجا copy است كه من dynamic Text كرده و اين يك test را ptc سلام من

را با نوشته ای که من از ایشان درخواست کردم یعنی

سلام من PTC را Test می کنم و این یک Dynamic Text است که Copy کرده و اینجا Paste نمودم

عوض کردم خودتان هم می توانید نمونه ایشان را از بالا دریافت کنید و نوشته داخل فایل a.txt را عوض کنید
عمرا درست عمل کند بهر حال خودتان می توانید امتحان کنید

یا نوشته ایشان را کپی کنید و در یک XML و یا حتی داخل همین تاپیک پیست کنید بد نیست این تاپیک به همه
ثابت کند چرا ما تو ایران عرضه هیچ کاری رو نداریم و چرا هیچ وقت نمی توانیم به پای اونوری ها برسیم
تا وقتی نتوانیم برای کار همدیگر احترام قایل شویم و تا وقتی که نتوانیم بهتر از خودمان را ببینیم نتیجه هم است و بس


خوش باشید و سرافراز -----------------CMAX




-
 

پیوست ها

  • Desktop_Edited.zip
    5.6 کیلوبایت · بازدیدها: 21
آخرین ویرایش:
سلام...
آقایون کمی تا قسمتی حرفه ای که تا 5 سال اینده پیش بینی حرفه ای شدن از شما انتظار میره.
انجام کار شما برای من به صورت انفرادی فقط 1 هفته طول میکشه.
و زمانی که برای دسترسی به اطلاعات شما صرف کردم فقط 15 دقیقه بود.
اگر دوست دارین بدونین تا حرفه ای شدن چقدر فاصله دارین این فایل رو ببینین :
و اطلاع داشته باشید که زمان صرف شده برای این, فقط 30 روز بوده و این آخرین ورژن تا 25/8/85 است.
اینم ببین
http://www.forum.majidonline.com/showthread.php?t=62143
------------------------------------------------------------------------------------------------------------------
متاسفم چون شما نمی تونی بهتر از خودت رو ببینی(CMAX)
 

پیوست ها

  • Component (WOw).zip
    46.4 کیلوبایت · بازدیدها: 24
آخرین ویرایش:

tafrehzan

Member
Cmax جان چرا خود تابع رو قرار نمیدی فکر کنم راحت تر باشه
از تابع که توی EnterFrame قرار بگیره میشه برای textinput فارسی استفاده کرد و احتیاجی به BT نداره اگر مطلبتون کپی رایت داره بگید ما تابع رو نذاریم
 

CMAX

Member
در جواب یک حرفه ای

سلام جناب سامان خان حرفه ای

حقیقتا ما که نفهمیدیم ارزش کار شما کجا بود و اصلا کدوم قسمت از برنامه شما ارزش اینو داشت تا با Amayeta
کد شود و بعد هم برای نشان دادن حرفه ای بودن شما روی نت قرار گیرد انهم برنامه به این سادگی که به قول خودشما
ظرف 30 رووووووووووووووووووووووووووووووز نوشته شده است
اولا خودت یک کم بهش ور برو تا ببینی چقدر مشکل دارد مثلا
اگر کاربر حرف D را در حالت eng بزند و بعد فارسی شود و همان حرف D را بزند و همینطور بین این دو سویچ کند
نتیجه این است

یییییییییییddddddddd


عجب برنامه ای نوشته ای استاد گرامی
من حوصله کل کل با تو یکی را حقیقتا دیگر ندارم چون اصلا ارزش هم صحبتی را هم نداری چه برسد که بخواهم
به تو چیزی را ثابت کنم که هه کسایی که اینجا هستند مرا می شناسند و خوب شاید بهتر باشد تا انها خود
قاضی این ماجرا باشند

اقا سامان من به عنوان حسن ختام این مبحث و برای اثبات توانایی خودم کل برنامه 30 روزه شما را تنها
در 8 دقیقه نوشتم و همه اونایی که اینجا هستند قاضی باشند و نظر هاشون رو در ادامه بگن

برای کد زیر تنها یک فایل fla خالی بسازید و کل کد را در فریم اول در پنل اکشن پیست و برنامه را امتحان کنید

این برنامه تها برای حروف کلمه CMAX
کار می کند یعنی حروف C و M و A و X و البته Space و بین دو زبان قابل سوئیچ می باشد

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

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

فقط حروف کلمه CMAX قابلیت سوئیچ بین Persian و English را دارد چرا که خودتان می توانید ادامه برنامه را
بنویسد و من تنها ایده کار را به شما دادم و از حوصله این بحث خارج بود تا کاملش می کردم .

کد:
//
//***********************************************************//
//                                                           //
//       CMAX | KeyLogger  | Writed in 8 min.                //
//       Wednesday 2007/02/07                                //  
//       A Sample For Fun                                    //  
//       For further Information Please Contact me           //
//       Mr. Saman_Fla_Pro                                   //
//                                                           //
//***********************************************************//
//
_root.createTextField('txt', _root.getNextHighestDepth(), 50, 50, 400, 20);

txt.border = true;
txt.background = true;
txt.backgroundColor = 0xf2f2f2;
txt.borderColor = 0xcccccc;
var fmt:TextFormat = new TextFormat();
with (fmt)
{
	font = 'tahoma';
	size = 11;
	color = 0x333333;
	align = 'right';
	bold = true;
}
txt.setTextFormat(fmt);
txt.setNewTextFormat(fmt);
txt.type = 'input';
var bte:MovieClip = _root.createEmptyMovieClip('bte', _root.getNextHighestDepth());
bte.beginFill(0xcccccc, 100);
bte.lineStyle(1, 0x999999);
bte.moveTo(0, 0);
bte.lineTo(80, 0);
bte.lineTo(80, 20);
bte.lineTo(0, 20);
bte.lineTo(0, 0);
bte.createTextField('txt', 1, 0, 1, 60, 20);
bte.txt.text = 'English';
bte.txt.setTextFormat(fmt);
btf = bte.duplicateMovieClip('btf', 100, {_x:350, _y:0});
txt.selectable =  false
btf.createTextField('txt', 1, 0, 1, 60, 20);
btf.txt.text = "Persian";
btf.txt.setTextFormat(fmt);
bte._y = btf._y=100;
bte._x = 200;
_root.createTextField('sta', _root.getNextHighestDepth(), 50, 200, 60, 20);
sta.text = 'Your Current Language is English';
sta.setTextFormat(fmt);
sta.setNewTextFormat(fmt);
sta.autoSize = true;
var lang:String = 'en';
bte.onPress = function()
{
	sta.text = 'Your Current Language is English';
	lang = 'en';
};
btf.onPress = function()
{
	sta.text = 'Your Current Language is Persian';
	lang = 'fa';
};
_root.o;
var obj:Object = new Object();
obj.onKeyDown = function()
{
	switch (Key.getCode())
	{
	case 67 :
		if (lang == 'en')
		{

			txt.text += 'C';
			
		}
		else if (lang == 'fa')
		{
			txt.text += 'ز';
		}
		break;
	case 77 :
		if (lang == 'en')
		{
			txt.text += 'M';
		}
		else if (lang == 'fa')
		{
			txt.text += 'ئ';
		}
		break;
	case 65 :
		if (lang == 'en')
		{
			txt.text += 'A';
		}
		else if (lang == 'fa')
		{
			txt.text += 'ش';
		}
		break;
	case 88 :
		if (lang == 'en')
		{
			txt.text += 'X';
		}
		else if (lang == 'fa')
		{
			txt.text += 'ط';
		}
		break;
	case 32 :
		txt.text += ' ';
		break;
		Selection.setFocus(null);
	}
};

Key.addListener(obj);
str = _root.createEmptyMovieClip('strok', _root.getNextHighestDepth());
str.lineStyle(2, 0xcccccc);
str.lineTo(500, 0);
str.lineTo(500, 300);
str.lineTo(0, 300);
str.lineTo(0, 0);
str._x = 20;
str._y = 20;
//
//***********************************************************//
//                                                           //
//       CMAX | KeyLogger  | Writed in 8 min.                //
//       Wednesday 2007/02/07                                //  
//       A Sample For Fun                                    //  
//       For further Information Please Contact me           //
//       Mr. Saman_Fla_Pro                                   //
//                                                           //
//***********************************************************//
//



خوش باشید و سربلند ------------------------CMAX
 
آخرین ویرایش:
عقل کل تو از اون برنامه فقط script دو button رو درک کردی.
این برنامه مشکلات تایپ فارسی رو در فلش چه input و چه static و ...(حتی در زمان انتخاب Text)بر طرف میکنه.
و اینکه در زمان تعویض زبان بین d و ی نتیجه, اون میشه .
این باگ نیست بلکه جزو امکاناتی هست که در این ورژن به دلیل پیشگیری از سو استفاده ی
برخی Disable شده.(و همچنین بر خی امکانات دیگر.)
تو اولین نفری نیستی که حالت رو اینطوری گرفتم.
MR amir شاهده.ومیدونه که نمونه کارهام روی 95 وب سایت از واحد های دانشکاه های کشور وجود داره.
و من کمتر از مدیر پست نداشتم.
بازهم متاسفم چون باگ script تو اینقدر زیاد هست که نمیشه اسمش رو script گزاشت.
فکر مبارزه در امر برنامه نویسی رو با من از خودت دور کن.چون ار لحاظ سنی من از تو کم کم 5 سال

جلو ترم.
و فقط 3 سال هست که کارم رو از نحوه ی فشار دادن کلید power کامپیوتر شروع کردم و حالا اینم.

امیدوارم دست از عقده ای بازی برداری و همچنین فکر کنم من با قرار دادن شماره تلفنم در اون فایل
نیت خوبم رو ثابت کرده باشم.
----------------------------------------------------
چرا ما پیشرفت نمی کنیم :
اگر این کارو با اون ور ابی ها کرده بودم از نظر اون ها کار من پاداش لازم داشت.
----------------------------------------------------
ارزش اون کمپو ننت اینقدر بود که بانک سامان حاظر به سرمایه گزاری در این مبحث بود.
----------------------------------------------------
از کدی که نوشتی مشخص شد تازه کاری.
http://www.forum.majidonline.com/showthread.php?t=60534
 
آخرین ویرایش:

CMAX

Member
Cmax جان چرا خود تابع رو قرار نمیدی فکر کنم راحت تر باشه
از تابع که توی EnterFrame قرار بگیره میشه برای textinput فارسی استفاده کرد و احتیاجی به BT نداره اگر مطلبتون کپی رایت داره بگید ما تابع رو نذاریم

سلام tafrehzan
راستش من دقیقا متوجه منظور شما نشدم و خوب اشکال از گیرنده است اما شما یکم برام روشن تر بگو
تا ما هم بگیریم :wink:

در ضمن بابت پست های آموزشی این چند روز باید ازت تشکر کنم دمت گرم خیلی خوب بود و البته جالب

Keep Up Good Work

بازم منتظریم اما قضیه این تابع رو خوب نفهمیدم

موفق باشی
 

tafrehzan

Member
Cmax جان فکر کنم من بد گفتم شرمنده منظورم این بود که برای توابع فارسی در فلش کلا مشکل اصلی حرف ی فارسی است که با تبدیل به ي ( shift X ) مشکل حل میشه البته برای متون داینامیک شما یه کامپومنت نوشته بودید که در آن این کار انجام میشد با استفاده از خود تابع در فریم اصلی و مقدار دهی آن به متون حتی input box ها هم میتونن فارسی وارد شوند و شما میتونین مقادیر را بدون اینکه مشکلی در ذخیره آن داشته باشید در فلش استفاده کنید

ضمنا از بابت زحمت های شما ممنون شما استاد ما هستین
 

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

بالا