2009-03-20 4 views

Répondre

6

Essayez d'utiliser swfObject, vous pouvez rendre toute fonction actionscript visible pour le javascript en utilisant ExternalInterface et en les déclarant en javascript. Donc, vous pouvez déclencher la fonction actionscript avec play() (ou tout autre code que vous voulez) à partir de votre code javascript.

Voici un exemple:

Actionscript:

import flash.external.ExternalInterface; 

ExternalInterface.addCallback("methodName", this, method); 
function method() { 
    trace("called from javascript"); 
} 

Javascript:

function callAS() { 
    swf.methodName(); 
} 

Où methodName est l'identifiant js utilise pour appeler la méthode de actionscript.

2

Oui c'est. Vous pouvez référencer les objets de film flash à partir de js et contrôler le composant flash dans une page. Malheureusement, la façon dont vous le faites n'est pas portable dans tous les navigateurs. Voir ceci:

http://www.permadi.com/tutorial/flashjscommand/

+0

Voir aussi: http://www.adobe.com/support/flash/publishexport/scriptingwithflash/ –

3

Jetez un oeil à SWFObject. Il y a beaucoup d'exemples sur la façon d'accomplir cela.

1

Vous pouvez appeler n'importe quelle fonction personnalisée dans Flash à partir de JavaScript, ce qui nécessite de coder JavaScript et Flash. Voir ici pour quelques exemples: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15683.

En outre, en utilisant SwfObject aide un long chemin lorsqu'il s'agit de Flash à partir de JavaScript.

+0

Je peux juste ajouter du code JS à la page, mais pas flash. – Geo

+0

Non, vous ne pouvez pas contrôler les vidéos flash compilées à partir de javascript sans utiliser ExternalInterface. – totocaster

+0

@Geo: exactement. Si vous voulez lire des films Flash, vous devez avoir un contrôle complet sur son code et son comportement. Si c'est un film de tiers, vous ne pouvez pas le contrôler (à moins, bien sûr, de le décompiler et d'y ajouter du code, mais c'est quelque chose que vous n'avez jamais entendu de moi: P). – Seb

2

Si vous devez le faire de Javascript considérer le retournement du paramètre autoplay comme ceci:

En supposant que vous avez attrapé le parent de l'objet/embed (vidParent):

if(document.all) { 
    // toggle the object code (IE) 
    vidParent.innerHTML = vidParent.innerHTML.replace(/0\" name=\"autoplay/gi,'1\" name=\"autoplay'); 
} else { 
    // toggle the embed code 
    vidParent.innerHTML = vidParent.innerHTML.replace(/autoplay=0/gi,'autoplay=1'); 
} 

Cette volonté recharger le flash avec autoplay = 1 (cet exemple fonctionne avec le lecteur YouTube).

Je devais faire cela pour faire un peu de suivi sur les jeux vidéo.

2

Une méthode intéressante est proposée ici: http://www.permadi.com/tutorial/flashjscommand/

Works pour moi!

L'idée est d'obtenir embed objet à l'aide

function getFlashMovieObject(movieName) 
{ 
    if (window.document[movieName]) 
    { 
     return window.document[movieName]; 
    } 
    if (navigator.appName.indexOf("Microsoft Internet")==-1) 
    { 
    if (document.embeds && document.embeds[movieName]) 
     return document.embeds[movieName]; 
    } 
    else // if (navigator.appName.indexOf("Microsoft Internet")!=-1) 
    { 
    return document.getElementById(movieName); 
    } 
} 

et appeler sa méthode Play() après.

getFlashMovieObject('MyMovie').Play() 

Quelques autres méthodes sont supportées, voir le lien ci-dessus. Est-ce que cela signifie que je ne suis pas en mesure de le jouer si la partie flash n'a pas été écrite par moi?