Question

Comme suite à cette question: L'élaboration d'un examen en ligne de l'application, comment puis-je empêcher les tricheurs?

Puis-je détecter lors de l'application Flex perd son accent?c'est si un utilisateur a cliqué sur une autre application ou ouvert un onglet du navigateur?

J'ai lu ceci: Détecter lorsqu'une application Flex perd le focus mais n'était pas très clair...

Était-ce utile?

La solution

La clé de la partie du code à ce lien

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

Le Flash player départs d'activer et de désactiver des événements lorsque la mise au point entre et sort du joueur.Tout ce que vous devez faire est de créer un listenr pour eux et réagir de façon appropriée.

Un plus clair exemple d'utilisation de l'activer et de désactiver des événements peut être vu à blog.flexaxamples.com.

Aussi, il ressemble à l'activer et de désactiver des événements, des difficultés dans certains navigateurs. Colin Moock a plus d'infos à ce sujet ici.

Autres conseils

Vous pouvez ajouter un gestionnaire pour l'activer dans l'application principale de la balise.Cette détecte à chaque fois que l'application flex vient à se concentrer.Par exemple:

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

Cela fonctionne pour détecter si le Flex windows perd le focus, mais pour détecter lorsque la fenêtre reprend focus sans avoir à cliquer sur le flex application nécessite une mise à jour dans l'enveloppe HTML, correct?Quelque chose comme:

<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()">

Je suis en train de mettre en œuvre, mais la onAppFocusIn() la fonction n'est pas de l'exécution d'une fois je reviens à la flex fenêtre d'application.Quand j'ai vue la source, le code est là.Quelqu'un sait-il pourquoi??

Merci, Annie

Dans Flex 4.6, cette commande fonctionne systemManager.scène.la méthode addEventListener(Event.DÉSACTIVER désactiver) mais assurez-vous que le flash app wmode est mis à la fenêtre (par défaut).Lorsque le paramètre wmode transparent, l'événement n'a pas attrapé.Vous définissez le paramètre wmode dans le langage html incorporé où vous mettez votre flash app.exemple:

<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

...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top