2010-08-25 6 views
0

Vous avez désespérément besoin d'aide et seriez gracieux si quelqu'un pouvait voir s'il pouvait trouver ce qui ne va pas.
J'essaye de déclencher un film de swf incorporé dans la page Web en employant une fonction de js. Ceci est une exécution sèche en utilisant le code d'échantillon que j'ai trouvé, je veux juste juste que le film joue et arrête via les instructions js, en cliquant sur un href. Site Web est http://simplywebdzine.com/ASJS_test.htmlImpossible d'activer JS pour déclencher la fonction As3 dans swf

Le code AS3 dans le swf est:

import flash.external.ExternalInterface; 
ExternalInterface.addCallback("sendTextToFlash", getTextFromJavaScript); 
function getTextFromJavaScript(str):void { 
trace(str); 
} 

MERCI

Ajout HTML complet:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org  /TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript"> 
function setCurrentPage(newPage) { 
    currentPage = newPage; 
    SendDataToFlashMovie(newPage); 
} 
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{ 
    return document.getElementById(movieName); 
} 
} 
function SendDataToFlashMovie(newPage){ 
var flashMovie=getFlashMovieObject("myFlashMovie"); 
flashMovie.sendTextToFlash(newPage); 
} 

</script> 
</head> 
<body> 

<a href="#" onClick="setCurrentPage('Home')">Home</a> 

    <object height="250" width="380" id="myFlashMovie" 
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash 
/swflash.cab#version=8"  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"> 
<param value="myFlashMovie.swf" name="movie"> 
<param value="high" name="quality"> 
<param value="transparent" name="wmode"> 
<param value="#FFFFFF" name="bgcolor"> 
<param value="true" name="allowFullScreen"> 
<param value="true" name="swLiveConnect"> 
<param value="always" name="allowScriptAccess"> 

<embed height="250" align="middle" width="380" src="myFlashMovie.swf" quality="high" 
pluginspage="http://www.macromedia.com/go/getflashplayer" play="false" 
loop="false"  scale="showall" wmode="transparent" devicefont="false" 
bgcolor="#000000" menu="true" allowfullscreen="false" allowscriptaccess="always" 
salign="" type="application/x-shockwave-flash" name="myFlashMovie"> 

</object></body> 
</html> 
+0

À quoi ressemble votre code HTML/Javascript? – drummondj

+0

John Je m'inquiétais de publier trop de code ici, donc j'ai donné un lien vers la page web, où le html et java peuvent être vus dans la source de la page. Mais je posterai le code complet si besoin !! – Edbro

Répondre

0

Assurez-vous que vous ajoutez l'accès au script param dans votre flash incorporer (normalement c'est le problème)

<param name="allowScriptAccess" value="always" /> 
+0

Oui, je l'ai fait Theo à la fois intégrer et objet – Edbro

0

On dirait que vous avez une faute de frappe dans le code html auquel vous avez lié. Vous avez ce code:

<a href onclick="javascript:SendDahMovie();">trigger</a> 

Mais la fonction JS que vous avez définie est:

function SendDataToFlashMovie(newPage){ 
    var flashMovie=getFlashMovieObject("myFlashMovie"); 
    flashMovie.sendTextToFlash(newPage); 
} 

Chaque fois que vous cliquez sur le lien trigger, non seulement votre fonction n'est pas appelée, mais aussi les rechargements de page. Alors essayez de corriger cette différence de nom. PS: En passant, votre code fonctionne réellement.

j'ai couru ce code JS de Firebug:

SendDataToFlashMovie('testing'); 

Et je peux voir la trace dans flashlog.txt.

+0

Merci beaucoup Juan Pablo, j'ai expérimenté partout et je me rends compte que j'ai laissé un lien reduntant là-bas ainsi que la faute de frappe. Sachant que ça marche me donne de l'espoir. Au moins, je sais que j'ai un code valide pour jouer avec. – Edbro

Questions connexes