رفتن مکان نما به کادر متنی بعدی با تایپ یک کلمه خاص

splinter cell

Well-Known Member
با سلام به دوستان
در as3
دو تا input text در صفحه داریم. که قراره اگر کاربر توی اولی یک کلمه رو درست تایپ کرد مکان نما بطور خودکار به اون یکی بره و گرنه کلمه ای که تایپ کرده هایلایت بشه و آماده دریافت مجدد باشه(بدون اینکه با کلیک ماوس دوباره فوکوس رو به اون برگردونه)
من از setFocus استفاده کردم ولی نمیدونم چرا کار نمیکنه. اومدم selectable اون اولی رو بعد از تایپ جواب درست غیر فعال کردم ولی چون مکان نما هنوز همونجا جا خوش کرده کاربر اگه دکمه های صفحه کلید رو بزنه اون جواب رو میتونه تغییر بده و این خواسته من نیست.لطفاً راهنمایی کنید.
با تشکر
 

++Hadi++

Active Member
خوب بعد از تایپ می تونی بررسی کنی و اگه مساوی چیزی بود focuse رو ببری رو تکست فیلد بعدی .
 

splinter cell

Well-Known Member
این دو تا کادرمتنی من از کامپوننت textfield نیستند ها!
من دو تا تکست از نوع اینپوت در صفحه قرار دادم و instant اونها رو e1 , e2 گذاشتم. حالا وقتی توی اولی کلمه(مجیدآنلاین)تایپ میشه میخوام بره به دومی و آماده تایپ باشه.در غیر اینصورت نوشته داخلش هایلایت بشه و منتظر دریافت مجدد باشه.
حالا این setFocus رو که استفاده میکنم ارور میده
Scene 1, Layer 'Actions', Frame 1, Line 9 1061: Call to a possibly undefined method setFocus through a reference with static type flash.text:TextField.

اما برای تکست فیلدها خیلی راحت این دستور setFocus جواب میده.حالا اگر بخوام حتما از input text استفاده کنم چاره چیه هادی جان؟
 

splinter cell

Well-Known Member
ممنونم هادی جان
نه من نخواسته بودم.ولی خیلی دوست دارم درمورد اون بیشتر بدونم :)
 

splinter cell

Well-Known Member
آقا ما راضی به زحمت نیستیم که نمونه برامون بذارین.
همینطور شفاهی هم توضیح بدین کافیه.ممنون از توجه دوستان
 

mohammadfard

کاربر فعال
با سلام خدمت دوست عزیزم

دوست من شما باید برای Focus کردن روی یک شی خاص از Property ی focus در کلاس stage استفاده کنی

stage.focus=MyTextField
یک نمونه هم برات درست کردم که مطلبو خوب بگیری (;

متاسفانه من نتونستم آپلودش کنم شاید سایت مشکل داشته
کدش رو همین جوری واست میزارم
کد:
import flash.text.TextField;
import flash.events.Event;
Box1_txt.addEventListener (Event.CHANGE,ChangeValue);
function ChangeValue (e:Event) {
	var MyTextBox:TextField = e.currentTarget as TextField;
	if (MyTextBox.text == "Splinter") {
		stage.focus = Box2_txt;
	}
}

دوتا TextField با نام های Box1_txt و Box2_txt روی صفحه بزار توی اولی که عبارت Splinter رو تایپ کنی اتوماتیک می پری توی دومی (;

یا علی
 

++Hadi++

Active Member
تنها موردی که هست اینه که بعد از فوکوس شدن روی تکست فیلد دوم ، آماده نوشتن نمی شه ... شاید adobe این امکانو بسته ... حتی اگه setSelection هم کنین باز نمی شه مستقیم قبل از کلیک یا tab یا ... رو تکست فیلد دوم نوشت ...
 

splinter cell

Well-Known Member
همونطور که در پست 3 گفتم من نمیخوام از تکست فیلد استفاده کنم. میخوام تکست از نوع اینپوت باشه.
 

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

بالا