كيفية برمجيا تعيين التركيز إلى HorizontalList بحيث يمكن أن تلقي الأحداث الرئيسية (فليكس)?

StackOverflow https://stackoverflow.com/questions/1625262

  •  06-07-2019
  •  | 
  •  

سؤال

رجاء نظرة على كود:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:creationComplete>
    <![CDATA[
        list.setFocus();
    ]]>
</mx:creationComplete>
<mx:HorizontalList id="list">
    <mx:creationComplete>
        <![CDATA[
            setFocus();
        ]]>
    </mx:creationComplete>
    <mx:focusIn>
        <![CDATA[
            trace("Received focus");
        ]]>
    </mx:focusIn>
    <mx:keyDown>
        <![CDATA[
            trace("Key down");
        ]]>
    </mx:keyDown>
    <mx:dataProvider>
        <mx:Object label="Some"/>
        <mx:Object label="Different"/>
        <mx:Object label="Stuff"/>
    </mx:dataProvider>
</mx:HorizontalList>

كما ترى, أنا في محاولة لجعل بلدي HorizontalList ركز عند تحميل التطبيق.وأنا في الواقع تلقي Received focus رسالة في وحدة التحكم.ولكن كنت أتوقع أنني سوف تكون قادرة على التنقل من خلال قائمة العناصر مع مفاتيح الأسهم بعد وضع التركيز.ولكن هذا ليس هو الحال.أنها تعمل فقط بعد النقر فوق عنصر مع الماوس.إذن ما الخطأ الذي فعلته ؟ كيفية جعل قائمة يجب التركيز على الرد على "مفاتيح الأسهم" ؟

هل كانت مفيدة؟

المحلول

هل التطبيق الخاص بك تشغيل داخل المتصفح؟ قد تضطر إلى تعيين التركيز على كائن SWF (عبر جافا سكريبت) من أجل البدء في التفاعل معها دون النقر الكائن أولا.

وعلى سبيل المثال، على افتراض كنت تستخدم فليكس باني، حاول إضافة خط مثل هذا واحد إلى نهاية العلامة SCRIPT ملف index.template.html الخاص بك:

window.onload = function()
{
    document.getElementById("${application}").focus();
};

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

نصائح أخرى

ركضت رمز قادرة على التنقل من خلال قائمة مع لوحة المفاتيح دون النقر على القائمة أولا - ولكن أنا وكان انقر في أي مكان على فليكس التطبيق بحيث يتلقى التركيز في المقام الأول.أعتقد أن هذا هو وجود قيود على فلاش بشكل عام - SWF لن تتلقى تركيز لوحة المفاتيح إلا إذا كنت انقر في أي مكان على ذلك (تمرير الماوس سوف لا تزال النار على الرغم من).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top