Erreur avec GetVariable() sur un composant flash

[Résolu]
Signaler
Messages postés
4
Date d'inscription
dimanche 17 septembre 2006
Statut
Membre
Dernière intervention
12 décembre 2009
-
Messages postés
77
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
6 septembre 2010
-
Dans mon programme une option doit permettre de taper un nom de variable et indiquer dans une MsgBox la valeur de celle-ci. Il y a donc un champ de texte où on entre le nom supposé de la variable (il est récupéré dans une variable nommée VarTest) et un bouton "Ok" qui affiche la valeur correspondant a la variable quand on clique dessus.
Le nom de variable est entré dans le form1 et le logiciel doit trouver sa valeur dans un composant shockwave flash situé dans le form1 et appelé flash1.

J'ai donc ce code:
Private Sub mneGetVar_Click()
Dim VarTest As String
//le VarTest contient le nom de la variable
VarTest = InputBox("Nom de variable")
//si l'utilisateur n'a mis aucun nom il ne se passe rien
If VarTest = "" Then
Else
If IsEmpty(flash1.GetVariable(VarTest)) Then
MsgBox ("variable inexistante")
Else
MsgBox (flash1.GetVariable(VarTest))
End If
End If
End Sub

Le problème est que si je rentre le nom d'une variable existante et que je clique sur "Ok" le logiciel m'indique bien la valeur de cette variable mais si j'indique une variable qui n'a pas été initialisée alors le logiciel affiche:
Run-Time error '-2147467259 (80004005)'
Method 'GetVariable' of object 'IShockwaveFlash' failed

6 réponses

Messages postés
77
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
6 septembre 2010
2
On erro Goto en VB pardon.
Messages postés
77
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
6 septembre 2010
2
C'est tout a fait normal, sauf si j'ai mal compris.
En gros, si tu n'initialise pas ta variable flash avant de l'appeler tu ne peux effectivement pas l'appeler... fait un
flash1.setvariable("VarTest", "ma valeur")
et ensuite un
flash1.getvariable(vartest)

et tu ne devrais pas avoir d'erreur...
Peux importe le language, il faut toujours initialisé une variable (même a null) avant de l'utiliser, ca évite les erreurs de compilation.

En espérant t'avoir aidé, si je n'ai pas compris ton probleme, merci de le re expliquer.

Cordialement.

DeWaRs
Messages postés
4
Date d'inscription
dimanche 17 septembre 2006
Statut
Membre
Dernière intervention
12 décembre 2009

En fait le but du logiciel est de modifier les variables de l'animation flash qui est chargée dans le composant shockwave flash.
Et l'interet de ce script est de voir si une variable existe dans l'animation et dans ce cas afficher sa valeur puis permettre à l'utilisateur de mettre la valeur qu'il veut.
Si j'initialise la variable lorsque l'utilisateur la cherche je suppose que sa va créer des problèmes dans l'animation flash car si l'utilisateur entre par erreur le nom d'une variable qui fait planter l'animation lorsqu'on la change alors l'animation plantera effectivement.

L'objectif est d'afficher "variable inexistante" si l'utilisateur cherche une variable qui n'est pas initialisé dans l'animation flash et d'afficher sa valeur dans le cas contraire et sans devoir la créer nous même.

Il n'y aurait pas une fonction permettant de vérifier si une variable existe dans l'animation flash et de prévenir l'utilisateur si elle n'existe pas ?
Messages postés
77
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
6 septembre 2010
2
A prioris il n'existe pas de fonction pour vérifier si un variable existe dans un flash. Essaie de voir en passant par external.interface en Action Script ou alors un goto error en VB.
Messages postés
4
Date d'inscription
dimanche 17 septembre 2006
Statut
Membre
Dernière intervention
12 décembre 2009

On error goto marche. Si l'animation flash ne possède pas la variable cherchée alors le logiciel indique "variable inexistante" et dans le cas contraire indique sa valeur.

Merci beaucoup.
Messages postés
77
Date d'inscription
vendredi 31 décembre 2004
Statut
Membre
Dernière intervention
6 septembre 2010
2
De rien :)