Question

J'utilise Open Flash Chart 2 pour présenter des graphiques et des graphiques sur mon site Web. J'essaie de charger les données JSON pour un graphique de la même page. Il existe plusieurs façons de le faire.

  • Utilisez la propriété get-data du graphique et passez une méthode JavaScript qui renvoie le JSON
  • Utilisez la méthode Open_FLASH_CHART_DATA que le graphique flash sait lire les données à partir de

Tous semblent bien fonctionner sur Firefox, Chrome, etc. Le seul navigateur qui a un problème est IE (j'utilise IE 8)

En regardant un peu dans l'open source, j'ai constaté que la bibliothèque utilise EXETRNALInterface pour exécuter la méthode JavaScript, et en allongant l'ExternalInterface semble être disponible, il renvoie NULL pour toute exécution d'une méthode dans IE.

Il semble que ce problème soit déjà connu pour la communauté Flash Developers, donc j'ai essayé peu de choses (bien qu'il existe des solutions que je ne pouvais pas utiliser dans la bibliothèque - par exemple ID unique pour l'élément intégré. La bibliothèque le génère)

En conclusion, je manque probablement une solution simple pour mon problème.

Mon code:

Ceci est l'appel jQuery sur le graphique flash ouvert de JavaScript:

$('#myDiv').flash
(
    {
        src: ofc_swf,
        width: "400",
        height: "250",
        allowscriptaccess: "always",
        wmode: "transparent",                 
        flashvars: {"get-data": "getFlashJson"}                       
    },
    {
        version: 8
    }
);

Et c'est la méthode JavaScript qui renverra la source JSON du graphique:

function getFlashJson()
{
    var val = $("#myJson").val();
    return val;
}

J'apprécierai toute aide à ce sujet.

Merci

Était-ce utile?

La solution

Essayez de mettre à jour swfObject.js: Pour moi, la version 2.2 avait résolu mes problèmes.

Autres conseils

J'ai eu ce problème et j'ai trouvé une solution.

Supprimez les parties du code flash dans le fichier PHP qui préface l'ID de film avec ie_ et modifiez également le code javascript swfObject à ceci:

function findSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft")!= -1) {
    return window[movieName];
  } else {
    return document[movieName];
  }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top