تعامل الأكشن سكربت مع لوحة المفاتيح

– تعريف بكيفية التعامل مع الكيبورد من خلال الأكشن سكربت
– شرح انواع الــ Keyboard Events
– كيفية تحديد المفتاح من خلال keyCode

إضغط على الفيديو لبدء التشغيل .. الفيديو متاح بجودة HD يمكن إختيارها من المشغل


..
من يرغب في تحميل الفيديو هناك برامج وإضافات في متصفحات مثل كروم وفايرفوكس تمكنك من تحميل الدروس من يوتيوب بسهولة .. حمل النسخة عالية الجودة أفضل


  1. عمر احمد
    4 مايو 2013 - 2:46 م

    شكرااااااااااااااااااااااااااااااا جدا اخي الكريم …..جزاك الله خير …

    انا كنت محتاج الدرس ده من مدة طويلة ودورت وملقتش مساعدة تانية.

    الف شكر اخي

  2. Daly
    4 مايو 2013 - 4:08 م

    شكرا أستاذ على الدرس

    هل هناك مشكلة لل keyboardEvent مع fullscreen mode ؟
    أذكر أني في أحد التطبيقات air اللتي من المفروض تفتح على كامل الشاشة ،عندما اضغط على fullscreen
    تصبح لوحة المفاتيح لا تعمل

    • علي محمد علي
      4 مايو 2013 - 4:29 م

      نعم .. هذا قيد أمني وضعته أدوبي على إعتبار أن ممكن من خلاله يقلد أحدهم شاشة دخول النظام ويجعلها ملء الشاشة ويحصل على معلومات الدخول السرية … قيد غبي لكنه موجود للأسف .. يمكن عمل لوحة مفاتيح جرافيكية تظهر للمستخدم ليستخدمها إن لزم الأمر

  3. عمر احمد
    4 مايو 2013 - 4:13 م

    هل يمكنني عمل موفي كليبب من الدائرة وفي الموفي كليب ده الدايرة تتحرك يمين مثلا….ومتتنفذش الحركة الا لما ادوس على زرار؟ اعتقد ده هيخلي الحركة اكثر نعومة ومتوالية صح؟

    • علي محمد علي
      4 مايو 2013 - 4:30 م

      لا أفهمك بشكل جيد .. يمكنك عمل ما ذكرت لكني لا أعرف كيف سيجعل هذا الحركة أكثر نعومة

      • عمر احمد
        4 مايو 2013 - 5:22 م

        اقصد ان في هذا الدرس…عند الضغط على يمين مثلا يتحرك مرة واحدة ثم يقف …ولو لم ارفع يدي سيكمل الحركة

        انا اريد ان مع ضغط يمين يكمل حركة على طول…مش يعمل مرة بعدين يقف وبعدين يكمل حركة

        يعني لم مثلت الحركة بالنقط …فبالنسبة للشرح ده هي كدا:

        – (يقف لمدة ثانية او ثانيتين)——————–
        انا عايزها كدا بمجرد الضغط على الزرار
        —————————————–
        يعني حركة متصلة من البداية

  4. عبدالله ياسين
    4 مايو 2013 - 5:05 م

    درس جميييييييل جدا ولكني اريد ان اطلب منك طلب عاوز درس يشرح فيه الجاذبية gravity
    وشكرا

  5. عبدالله ياسين
    4 مايو 2013 - 8:53 م

    درس جميييييييل جدا ولكني اريد ان اطلب منك طلب عاوز درس يشرح فيه الجاذبية gravity
    وشكرا

  6. Eyad
    5 مايو 2013 - 10:04 م

    رائع جداً والحمد لله ان المدرسة رجعت لنشاطها

    شكراً جداً لك

  7. عمر احمد
    7 مايو 2013 - 11:44 م

    السلام عليكم……الحمد لله بعد بحث طويل شوية في النت لقيت طريقة تحريك الاجسام بشكل جميييييييل جدا ..جربوه بنفسكم:

    import flash.events.KeyboardEvent;
    import flash.events.Event;
    import flash.ui.Keyboard;

    //add event when a key is pressed
    stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
    //add event when a key is released
    stage.addEventListener(KeyboardEvent.KEY_UP, KeyUpHandler);
    //add event that will fire on the framerate
    addEventListener(Event.ENTER_FRAME, EnterFrameHandler);

    var xAcceleration :Number = 0; //x acceleration
    var yAcceleration :Number = 0; //y acceleration
    var xSpeed:Number = 0; //speed on the X axis
    var ySpeed:Number = 0; //speed on the Y axis

    //based on the keys that are down set the acceleration
    function keyDownHandler(event:KeyboardEvent):void
    {
    if(event.keyCode == Keyboard.LEFT)
    {
    xAcceleration = -1;
    }
    else if(event.keyCode == Keyboard.RIGHT)
    {
    xAcceleration = 1;
    }
    else if(event.keyCode == Keyboard.UP)
    {
    yAcceleration = -1;
    }
    else if(event.keyCode == Keyboard.DOWN)
    {
    yAcceleration = 1;
    }
    }

    //when a key is released set the acceleration to 0
    function KeyUpHandler(event:KeyboardEvent):void
    {
    if(event.keyCode == Keyboard.LEFT || event.keyCode == Keyboard.RIGHT)
    {
    xAcceleration = 0;
    }
    else if(event.keyCode == Keyboard.UP || event.keyCode == Keyboard.DOWN)
    {
    yAcceleration = 0;
    }
    }

    function EnterFrameHandler(event:Event):void
    {
    xSpeed += xAcceleration ; //increase the speed by the acceleration
    ySpeed += yAcceleration ; //increase the speed by the acceleration

    xSpeed *= 0.95; //apply friction
    ySpeed *= 0.95; //so the speed lowers after time

    if(Math.abs(xSpeed) < 0.02) //if the speed is really low
    {
    xSpeed = 0; //set it to 0
    //Otherwise I'd go very small but never really 0
    }
    if(Math.abs(ySpeed) < 0.02) //same for the y speed
    {
    ySpeed = 0;
    }

    xSpeed = Math.max(Math.min(xSpeed, 10), -10); //dont let the speed get bigger as 10
    ySpeed = Math.max(Math.min(ySpeed, 10), -10); //and dont let it get lower than -10

    this.x += xSpeed; //increase the position by the speed
    this.y += ySpeed; //idem

    }

    اكتبوا الكود ده كله في اول ليير في موفي كليب