var textStr:String = "برنامه هایی که تحت پلتفرم AIR برای ارتباط با وب ساخته می شوند ، همگی با دیتا و اطلاعات سرو کار دارند و بر روی دسکتاپ کاربر اجرا می شوند ، بسیاری از اوقات لازم می شود تا شما اطلاعاتی را بر روی سیستم کاربر برای استفاده های بعدی ذخیره کنید ، مثلا در یک فرم برای Log in ، احتمالا چک باکس کنار بیشتر فرم های Log In را بیاد دارید ، یا برای استفاده دیگری غیر از پسورد و اطلاعات شخصی به این ذخیره سازی ممکن است احتیاج داشته باشید یک ذخیره سازی کد و امن شده ، مختص هر کاربر !"
خوب بریم سر کدها :
در خط اول ما کلاس های رو که در داخل پوشه farsi گذاشته بودیم به داخل فلش import میکنیم (وارد میکنیم)
در خط دوم ما یه متغیر از نوع TextFormatتعریف میکنیم که میتونیم با استفاده از اون مشخصات کادر متن مانند رنگ سایز و فونت رو تغییر بدیم بعد یه متغییر از نوعی کلاس رو تعریف کرده و با استفاده از متد new یه نمونه از اون رو میسازیم بعد فونت رو مشخص میکنیم ( دوستان اون فونتهایی که دانلود کردین رو منظورمه به این ترتیب که در پنل library یک فونت به این شکل ایجاد کرده و از پنل linkage اسم اون(indentifier) رو font بزارین :
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
فونت اختیاری هر کی هر فونتی و دوست داشت اون رو انتخاب کنه :40:
بعد اون متغییر TextFormat رو به کادر متن نسبت میدیم
این سورس توابع این کلاس هستش :
[php]
class farsi.FarsiStyle extends farsi.Fixer {
public var onProgressing:Function;
public var onComplete:Function;
public function setText(_TF:TextField, Text:String , Speed:Number ,type:String, unicode:Boolean ) {
if (unicode == undefined) {
Unicode = false;
}
if (type == undefined) {
type = "multiline";
}
TF = _TF
var my_fmt:TextFormat = TF.getNewTextFormat();
converting(Text,Speed , type)
}
public function convert(_TF:TextField , Text:String ,type:String, unicode:Boolean ) {
if (unicode == undefined) {
Unicode = false;
}
TF = _TF
FastConvert_(Text);
my_fmt = TF.getNewTextFormat();
if (type == "multiline" || type == undefined) {
return setTexts()
}else {
return ConvertedText;
}
}
public function resize(_TF:TextField):String {
var Lines:Array = _TF.text.split(" ").join("").split("ـ").join("" ).split("‰").join("").split("\r");
TF = _TF;
my_fmt = TF.getNewTextFormat();
Lines.reverse();
ConvertedText = Lines.join("");
TF.text = ConvertedText;
return setTexts()
}
}[/php]
بعد با تابع myFS.convert(my_txt, textStr);بعد متن رو به کادر متن نسبت میدیم
تنها کد اضافی برای انجام این کار بسی شگرف فارسی نویسی (خیلی ساده ست! نه)
اینم نمونه کار که میبینین کتن با اینکه هم کلمات فارسی و انگلیسی داره هیچ به هم خوردگی نداره
کد:
http://rapidshare.com/files/255293579/AS2_RTL_sample.zip.html
خوب بریم سراغ اکشن اسکریپت 3 :
در اکشن اسکریپت 3 هم همان کار رو انجام میدین فقط با تغییر چند کد(البته کدها همونه فقط به زبان اکشن اسکریپت 3 نوشته شده)
[php]import farsi.FarsiStyle;
var font:MyFont=new MyFont();
var txt_fmt:TextFormat=new TextFormat();
var myFS:FarsiStyle = new FarsiStyle();
txt_fmt.font=font.fontName;
RTL_txt.defaultTextFormat=txt_fmt;
RTL_txt.embedFonts=true;
var Text:String = "برنامه هایی که تحت پلتفرم AIR برای ارتباط با وب ساخته می شوند ، همگی با دیتا و اطلاعات سرو کار دارند و بر روی دسکتاپ کاربر اجرا می شوند ، بسیاری از اوقات لازم می شود تا شما اطلاعاتی را بر روی سیستم کاربر برای استفاده های بعدی ذخیره کنید ، مثلا در یک فرم برای Log in ، احتمالا چک باکس کنار بیشتر فرم های Log In را بیاد دارید ، یا برای استفاده دیگری غیر از پسورد و اطلاعات شخصی به این ذخیره سازی ممکن است احتیاج داشته باشید یک ذخیره سازی کد و امن شده ، مختص هر کاربر !";
//
RTL_txt.text = myFS.convert(RTL_txt, Text);
[/php]
اینم نمونه کار :
کد:
http://rapidshare.com/files/255294853/AS3_RTL_sample.zip.html
اینم یه نمونه کار با اکشن اسکریپت 3 که فکر کنم خوشتون بیاد :
کد:
http://rapidshare.com/files/255302536/AS3_sample_With_Eff.zip.html