IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Appeler une fonction d'un fichier SWF depuis un Form VB6


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut Appeler une fonction d'un fichier SWF depuis un Form VB6
    Salut!

    J'aimerai créer un outil en Visual Basic pour l'équipe de développement d'un jeu Flash online dans laquelle j'ai été. Le problème n'est donc pas l'ActionScript mais le VB: J'y connais absolument rien de chez rien il faut bien le dire. >>
    Je souhaite le faire en VB parce que c'est plus "propre", l'outil existe déjà en Flash.

    Bref il permet entre autres choses de tester le jeu extensivement côté client en éditant les variables AS2. J'ai cru comprendre en quelques tests que VB permettait l'édition des variables Flash avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objFlash.GetVariable("nom_variable")
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call objFlash.SetVariable("nom_variable", [valeur])
    Mon problème vient surtout du fait que je n'arrive pas à appeler les fonctions définies en AS2 dans les fichiers SWF du jeu.
    objFlash.CallFunction("nom_fonction") ne marche pas et je vois pas d'autre solution... Sans parler des appels de fonctions avec paramètres.

    Quelqu'on saurait-il jusqu'à quel point un programme VB6 peut influer sur le contenu d'un fichier SWF qu'il charge depuis le net ?
    Ca doit quand meme etre possible d'appeler des fonctions non ?


    Merci pour l'aide!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Personne ne sait alors ?

    Il n'y a aucun moyen d'appeler une fonction définie dans un SWF depuis le programme VB6 dans lequel ce SWF est chargé ?
    A quoi sert la fonction "composant_ShockwaveFlash.CallFunction" du coup ?

    Ce serait bizarre qu'il n'y ait aucun moyen quand meme...

  3. #3
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Ben je sais même pas ce qu'est un SWF , alors pour t'aider !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Ok tanpis merci quand meme pour avoir répondu

    (SWF c'est l'extension des fichiers Flash. blabla.swf)

  5. #5
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Effectivement FSCommand doit probablement marcher pour peu qu'on s'en serve bien.

    J'ai finalement trouvé une solution plus appropriée à Flash 8+ alors autant l'expliquer vite fait au cas où d'autres auraient le même problème que moi dans le futur: la classe ExternalInterface. Depuis le fichier SWF, on enregistre une fonction AS2 comme pouvant être appelée par le conteneur (le programme VB dans mon cas).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    flash.external.ExternalInterface.addCallBack("IDFonctionDésignée", null, NomFonctionDésignée)
    Après il suffit de l'appeler dans VB avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objFlash.CallFunction("<invoke name=""IDFonctionDésignée"" returntype=""xml""><arguments><TypeDonnéeAS2>ValeurDonnéeAS2</TypeDonnéeAS2></arguments></invoke>")
    Et voilà. Les trucs en gras sont des noms à modifier selon la situation. Sinon pour faire l'inverse, c'est à dire appeler une fonction VB depuis un fichier SWF, il faut utiliser ExternalInterface.call en AS2 et objFlash.FlashCall en VB


    Maintenant j'ai un autre petit problème, étant nul en VB je ne sais pas comment ajouter une ressource (un fichier .swf) à mon programmeVB.exe final afin qu'il n'y ait qu'un seul fichier à distribuer au lieu de deux.
    Je connais déjà la propriété EmbedMovie de l'objet ShockwaveFlash, mais je ne peux pas la mettre sur True étant donné que le principal fichier SWF est chargé depuis le net et communique régulièrement, bref EmbedMovie=True l'empêcherait de fonctionner.
    Le fichier SWF secondaire que je veux ajouter en ressource sera en fait chargé dynamiquement au fichier principal, autrement dit il n'aura pas sa propre propriété EmbedMovie; Il partagera celle du fichier principal qui doit nécessairement rester False. Comment dans ce cas inclure ce fichier SWF secondaire au vb.exe final ? Et une fois inclus, comment récupérer son chemin et nom pour pouvoir agir dessus ? Dans l'idéal j'aimerai ne pas avoir à créer un deuxième objet ShockwaveFlash, le second SWF n'a pas besoin d'interface graphique...


    Merci pour l'aide
    Je n'ai pas trouvé de réponse dans les FAQs, mais je suis peut etre devenu à moitié aveugle à force de rechercher à travers tout internet. :p

  7. #7
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Tu peux le mettre dans un fichier ressource, Vb est fourni avec un editeur de fichier ressource. AU momment de l'execution, il faudra l'extraire vers le disque avec loadresdata

Discussions similaires

  1. [Débutant] Appeller une fonction de la page aspx depuis un control ascx
    Par Alegreg dans le forum ASP.NET
    Réponses: 19
    Dernier message: 24/03/2015, 15h38
  2. [SQL-Server] Comment appeller une fonction stockée en MS SQLServer depuis PHP ?
    Par momoG dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/12/2008, 16h11
  3. appel à une fonction dans un fichier externe
    Par corentin59 dans le forum Langage
    Réponses: 1
    Dernier message: 11/01/2008, 12h22
  4. appeler la fonction d'un fichier js depuis un autre fichier
    Par kohsaka dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/09/2007, 18h49
  5. Appeler une fonction d'un script PHP depuis HTML
    Par barthelv dans le forum Langage
    Réponses: 31
    Dernier message: 27/12/2005, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo