2009-01-06 5 views
4

J'utilise SWFObject pour flash player sur ma page Web. Joueur comme d'habitude a des boutons comme Play, Stop, Pause etc. Je dois saisir le moment, quand mon utilisateur clique sur n'importe quel bouton et j'ai besoin d'exécuter une fonction JS en ce moment. Désolé pour mon anglais et merci beaucoup d'avance. P.S. Je n'ai pas les sources de mon fichier swf. AFAIK, ceci est fait via la fonction getURL().Comment attraper cliquez sur le lecteur flash?

Répondre

4

Vous devez définir les éléments suivants dans le script d'action du fichier flash:

this.onClick = function(){ 
    getURL("javascript:yourFunctionName();"); 
}; 

Cela signifie que vous ne pouvez pas prendre simplement un fichier flash et en faire appeler des fonctions JS, il doit être défini dans le fichier flash lui-même. Si je me trompe, j'aimerais entendre comment cela peut être fait plus génériquement sans modifier le flash lui-même.

3

L'appel d'une fonction javascript à partir de flash peut également être réalisé en utilisant ExternalInterface.

+0

Un instant ici: je n'ai pas les sources de mon lecteur web flash. – user52005

+0

Tout à fait raison, cependant - ExternalInterface est le chemin à parcourir lorsque vous avez accès à la source. C'est une belle chose. :) –

1

Vous pouvez utiliser la méthode onPress.

Exemple

[button_name] .onPress = function() {

// ici les choses que vous voulez faire

}

1

Hmm ...

A Je ne pense pas qu'il y ait un moyen, dans les limites du Javascript cross-browser, de se brancher sur une activité spécifique du lecteur Flash comme cette. En fait, je serais très surpris s'il y avait - bien que j'adorerais entendre autrement par quelqu'un de plus compétent que moi. :)

En supposant que c'est vrai, autre que par une combinaison d'écoute (dans le Javascript courant dans le contexte de votre page) pour les événements focus et click soulevés par l'objet ActiveX/plug-in lui-même être très précis ou fiable - je ne pense même pas que les événements de clic soient levés), je doute que vous ayez beaucoup de chance.

D'après ce bref test je l'ai fait jusqu'à présent:

window.onload = function() 
{ 
    document.onclick = function() 
    { 
     alert("Clicked the page!"); 
    } 

    document.getElementById("mySWFObjectID").onfocus = function() 
    { 
     alert("Focused the player!"); 
    } 

    document.getElementById("mySWFObjectID").onclick = function() 
    { 
     alert("Clicked the player!"); 
    } 
} 

... le joueur ne semble pas être bouillonnant événements de clic jusqu'à la page; Dans IE, l'événement focus se déclenche, mais pas dans Firefox, et une seule fois, lorsque le contrôle gagne en focus. Donc, en dehors de l'écriture, peut-être, d'un plugin de navigateur quelconque, pour vous obtenir un accès de niveau inférieur à ce qui est exposé au niveau Javascript, vous pourriez être hors de la chance sur celui-ci.

Mais encore une fois, s'il y a quelqu'un là-bas qui sait autrement ...

Questions connexes