كيف يمكنني اكتشاف ما إذا كان تطبيق Flex يفقد التركيز؟

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

  •  09-06-2019
  •  | 
  •  

سؤال

تكملة لهذا السؤال: تطوير تطبيق الامتحان الإلكتروني كيف أمنع الغشاشين؟

هل يمكنني اكتشاف متى يفقد تطبيق Flex تركيزه؟هذا إذا قام المستخدم بالنقر فوق تطبيق آخر أو فتح علامة تبويب المتصفح؟

انا اقرأ هذا: اكتشاف متى يفقد تطبيق Flex التركيز ولكن لم يكن واضحا جدا..

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

المحلول

الجزء الرئيسي من الكود الموجود على هذا الرابط هو

systemManager.stage.addEventListener(Event.DEACTIVATE,deactivate);

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

يمكن الاطلاع على مثال أكثر وضوحًا لكيفية استخدام أحداث التنشيط وإلغاء التنشيط على blog.flexaxamples.com.

ويبدو أيضًا أن حدثي التنشيط وإلغاء التنشيط يواجهان مشكلة في بعض المتصفحات. لدى كولين موك المزيد من المعلومات حول ذلك هنا.

نصائح أخرى

يمكنك إضافة معالج للتنشيط في علامة التطبيق الرئيسية.يكتشف هذا متى يتم التركيز على التطبيق المرن.على سبيل المثال:

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" activate="activateHandler(event);" deactivate="deactivateHandler(event);">

سيعمل هذا على اكتشاف الوقت الذي تفقد فيه نوافذ Flex التركيز، ولكن اكتشاف الوقت الذي تستعيد فيه النافذة التركيز دون الحاجة إلى النقر فعليًا على التطبيق المرن يتطلب تحديثًا في غلاف HTML، أليس كذلك؟شيء مثل:

<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = ${version_major};
// Minor version of Flash required
var requiredMinorVersion = ${version_minor};
// Minor version of Flash required
var requiredRevision = ${version_revision};
// -----------------------------------------------------------------------------
// -->


    function onAppFocusIn()
    {
        ${application}.onAppFocusIn();
        alert("onAppFocusIn");
    }

</script>
<body scroll="no" onFocus="onAppFocusIn()">

أحاول تنفيذ ذلك ولكن وظيفة onAppFocusIn() لا يتم تنفيذها بمجرد العودة إلى نافذة التطبيق المرن.عندما أشاهد المصدر، الكود موجود.هل يعرف أحد لماذا؟؟

شكرا ، آني

في Flex 4.6 ، يعمل نظام التشغيل SystemManager.stage.adDeventListener (Event.Deactive ، deactivate) ولكن تأكد من ضبط تطبيق Flash App Wmode على نافذة (افتراضي).عندما كان wmode شفافًا، لم يتم اكتشاف الحدث.يمكنك ضبط wmode في ملف html المضمن حيث تضع تطبيق الفلاش الخاص بك.مثال:

<object classid="clsid:D27WEE-A16D-21cf-90F2-422253540410" width="100%" height="100%"
id="MyApp" name="MyApp" align="middle">
<param name="movie" value="MyApp.swf?v=1.00.008" />
<param name="wmode" value="transparent">      <----- take out this

...

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