keyboard event

mohammadbasri

کاربر فعال
سلام دارم روی مبحث keyboard event کار میکنم
کد زیر رو بنگرید
PHP:
stage.addEventListener (KeyboardEvent.KEY_DOWN,keyHandler);
function keyHandler (evt:KeyboardEvent) {
	if (evt.keyCode==Keyboard.X) {
		myMc.gotoAndStop(2);
	}
}
کد بالا میگه که هر موقع کلید x فشرده میشه، مووی کلیپ مورد نظر به فریم دوم بره
خب سوال اول:
آیا هنگامی که از keyboard event استفاده می کنیم حتما باید از if و یا switch برای انجام دستور تابع استفاده کرد؟
سوال دوم
در کد بالا چگونه می توان از کلیدهای اساسی مانند enter و escape استفاده کرد؟
سوال سوم
ثابتهای keyboard event به غیر از KEY_DOWN و KEY_UP چیا هستند؟
ثابتی داریم که کار any key رو انجام بده؟
بقیه سوالها برا بعد...
 
آخرین ویرایش:

smmousazadeh

Well-Known Member
من خیلی با اکشن 3 کار نکردم ولی :
برای سوال اول فکر نکنم راه دیگه ای باشه و شما باید کلید رو یه جوری چک کنید.
برای سوال دوم می تونید از تابع Key.getAscii() استفاده کنید و کد کلیدی که فشرده میشه رو بگیرید.البته فکر کنم کلیدهایی که شما گفتید به صورت پیش فرض تعریف شده هستند و اسمشون هست. ( چندتا نکته : تو بعضی نرم افزار ها مثل دایرکتور بین کد اینترها تفاوت هست ، بین کد حروف بزرگ و کوچک فرق هست، بعضی کلیدها بی کد هستند مثلا فرقی بین m با CTRL+m نیست)
برای ساخت کلید any key هم در واقع شما هر کلیدی که زده شد یک تابع رو اجرا میکنی و کاری به اینکه چه کلیدی زده شده نداری
 

armanbm

کاربر VIP
با تشکر از آقای موسی زاده.
من پاسخ ها رو به ترتیب نوشتم:
1و4.خیر نیازی نیست که حتما از ایندوتا دستور شرطی استفاده کنیم. وقتی که رویداد فشرده شدن کلیدی رخ دهد، تابع keyHandler اجرا میشود.
حالا شما هرچیزی خواستی میتونی توش بنویسی. به کمک وردودی تابع keyHandler که کلبد فشرده شده رو تو خودش ذخیره داره، میتونید برای کلید های مختلف اتفاقات مختلف تعیین کنی. اما اگر اونجا هیچ دستور شرطی بکار نبرید، با زدن هر کلیدی دستورات نوشته شده درون تابع keyHandler اجرا میشود.

2. کافیه ت ودستور شرطی خط زیر رو:
if (evt.keyCode==Keyboard.X) {
به این خط تبدیل کنی:
if (evt.keyCode==Keyboard.ESCAPE ) {

برای کلید اینتر هم همینجوری است.

3. بریا دیدن این ثابت ها بهتره به هلپ نرم افزار رجوع کنی. لیست کردنشون اینجا خیلی جالب نیست.

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

برم بخوابم که فردا صبح کنکور هست! (البته از نوع المپیادی!!!)
 

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

بالا