Page 1 sur 1

ExternalInterface.call("refresh_div")

Posté : 02 sept. 2010, 01:17
par Nicost
Bonsoir tous,

Dans le javascript j'appel le fichier : donner.php

Dans le fichier donner.php je fait une requette pour avoir le total de bière cas l'utilisateur.

Je voudrait que le javascript ce lance que quand mon jeu de bière est fini, dans mon swf je lui applique l'action script (as2) suivant :

Code : Tout sélectionner

ExternalInterface.call("refresh_div");
Dans la page index.php, je place mon javascript
<script type="text/javascript">
var sText = '';
function refresh_div()
{
var xhr_object = null;
if(window.XMLHttpRequest)
{ // Firefox
xhr_object = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{ // Internet Explorer
xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
}
var method = 'POST';
var filename = 'donner.php';
xhr_object.open(method, filename, true);
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
var tmp = xhr_object.responseText;
if(xhr_object.responseText != sText) {
        document.getElementById('mon_div').innerHTML = sText = xhr_object.responseText;}
}
}
xhr_object.send(null);
setTimeout('refresh_div()', 1000);
}
</script>
Et j'affiche le nombre de bière cas l'utilisateur dans :

Code : Tout sélectionner

<div id='mon_div'></div>
Le problème est que la fonction "refresh_div" du javascript rafraichi toute les secondes, du coup cela doit sans doute prendre de la bande passante sur le serveur !!!
Donc sans même que je demande au javascript d'actualiser le DIV, il le fait quand même toute les secondes, alors que je voudrait qu'il s'actualise que quand je passe par mon jeu de bière avec la fonction : ExternalInterface.call("refresh_div");

En même temps je me dis que si le javascript ne s'actualise pas, alors il risque de ne pas afficher le nombre de bière total cas l'utilisateur, bref je galère :oops:
Merci de vos lumières à tous... !

Re: ExternalInterface.call("refresh_div")

Posté : 02 sept. 2010, 01:58
par Nours312
salut !... heu je ne vois pas pourquoi tu ne virerais pas la ligne :

setTimeout('refresh_div()', 1000);

au moins pour tester si tu arrives tout de même à ce que tu souhaites obtenir !... ;)

Re: ExternalInterface.call("refresh_div")

Posté : 02 sept. 2010, 07:56
par Nicost
A oui c'est vrais, merci Nours312 :oops:
Après test, j'ai bien l'affichage.
Niveau refresh avec ExternalInterface.call, rien....
J'ai vérifier que mon jeu était bien en player 8, car apparament la fonction ExternalInterface.call est dispo cas partir de cette version.

Re: ExternalInterface.call("refresh_div")

Posté : 02 sept. 2010, 09:57
par Nours312
Salut,

dans ton AS as tu bien

[actionscript]
import flash.external.*;
ExternalInterface.call("refresh_div");
[/actionscript]

je te confirme que cette fonction est disponible depuis AS1 et Flash 8

sinon, dans ta fonction JS place en tout début ::
[javascript]
alert("jusqu'ici tout va bien");
[/javascript]
il devra être appelé dès la fin de ton jeu et donc la demande de ré-actualisation, tu sauras si la fonction est bien appelée depuis ton Objet flash, auquel cas, le problème est javascript, sinon, c'est toujours dans flash ^^

Re: ExternalInterface.call("refresh_div")

Posté : 02 sept. 2010, 10:59
par Nicost
Nours312 tes CHEF, merci cela fonctionne.
Par contre j'ai un vieux jeu que j'avais fait un AS1, et le import flash.external.*; ne passe pas, faut que je regarde dans la doc.
Merci encore une fois :wink: