vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant
que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne
les requêtes Flash, sous la forme de 2 chaînes de caractères (command &
args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
Mais en fait, maintenant que je me souviens, il m'avait été impossible
de faire la 2ème partie, car Python (ou Flash) n'évaluait pas
correctement le fait de passer une variable dans la commande
SetVariable, même si construisais la String avant...
Enfin déjà si il existe une solution à la première partie, je suis
preneur :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Paviot
Hello à tous !!
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne les requêtes Flash, sous la forme de 2 chaînes de caractères (command & args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux nouvelles lignes ??
Tu peux utiliser un dictionnaire dont les clés seraient une chaîne de caractère représentant le nom de la fonction, associé à une valeur qui serait la fonction elle même:
Pour ce qui concerne la gestion des événements, je te conseille:
*de lire le script flashwin.py du module wx.lib, et notamment la fin du fichier qui documente les événements disponibles. *si ça ne te convient pas, d'écrire ton propre client (en dérivant par exemple la classe de base fournie avec wxPython) d'accès au serveur COM avec la gestion des événements, notamment en utilisant la fonction DispatchWithEvents du module win32com.client
Mais en fait, maintenant que je me souviens, il m'avait été impossible de faire la 2ème partie, car Python (ou Flash) n'évaluait pas correctement le fait de passer une variable dans la commande SetVariable, même si construisais la String avant...
Enfin déjà si il existe une solution à la première partie, je suis preneur :)
D'avance merci !
Thierry
Bonne journée,
Thomas
Hello à tous !!
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant
que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne
les requêtes Flash, sous la forme de 2 chaînes de caractères (command &
args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux
nouvelles lignes ??
Tu peux utiliser un dictionnaire dont les clés seraient une chaîne de
caractère représentant le nom de la fonction, associé à une valeur qui
serait la fonction elle même:
Pour ce qui concerne la gestion des événements, je te conseille:
*de lire le script flashwin.py du module wx.lib, et notamment la fin du
fichier qui documente les événements disponibles.
*si ça ne te convient pas, d'écrire ton propre client (en dérivant par
exemple la classe de base fournie avec wxPython) d'accès au serveur COM
avec la gestion des événements, notamment en utilisant la fonction
DispatchWithEvents du module win32com.client
Mais en fait, maintenant que je me souviens, il m'avait été impossible
de faire la 2ème partie, car Python (ou Flash) n'évaluait pas
correctement le fait de passer une variable dans la commande
SetVariable, même si construisais la String avant...
Enfin déjà si il existe une solution à la première partie, je suis
preneur :)
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne les requêtes Flash, sous la forme de 2 chaînes de caractères (command & args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux nouvelles lignes ??
Tu peux utiliser un dictionnaire dont les clés seraient une chaîne de caractère représentant le nom de la fonction, associé à une valeur qui serait la fonction elle même:
Pour ce qui concerne la gestion des événements, je te conseille:
*de lire le script flashwin.py du module wx.lib, et notamment la fin du fichier qui documente les événements disponibles. *si ça ne te convient pas, d'écrire ton propre client (en dérivant par exemple la classe de base fournie avec wxPython) d'accès au serveur COM avec la gestion des événements, notamment en utilisant la fonction DispatchWithEvents du module win32com.client
Mais en fait, maintenant que je me souviens, il m'avait été impossible de faire la 2ème partie, car Python (ou Flash) n'évaluait pas correctement le fait de passer une variable dans la commande SetVariable, même si construisais la String avant...
Enfin déjà si il existe une solution à la première partie, je suis preneur :)
D'avance merci !
Thierry
Bonne journée,
Thomas
bruno modulix
Titouille wrote:
Hello à tous !!
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne les requêtes Flash, sous la forme de 2 chaînes de caractères (command & args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
[code] def OnFSCommand( self, command, *args ) :
""" receive command from flash file """ self.command = command
if command == 'testCommand' : self.testCommand( args[0] )
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
réponse courte: getattr(self, command)(*args)
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux nouvelles lignes ??
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Titouille wrote:
Hello à tous !!
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant
que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne
les requêtes Flash, sous la forme de 2 chaînes de caractères (command &
args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
[code]
def OnFSCommand( self, command, *args ) :
""" receive command from flash file
"""
self.command = command
if command == 'testCommand' :
self.testCommand( args[0] )
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
réponse courte:
getattr(self, command)(*args)
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux
nouvelles lignes ??
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs):
self._command = command
method = getattr(self, command, None)
if method is None:
raise ValueError, "la commande %s est inconnue" % command
elif not callable(method):
raise ValueError, "%s n'est pas une commande" % command
method(*args, **kwargs)
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in 'onurb@xiludom.gro'.split('@')])"
vala... j'utilise assez souvent wxPython en liaison avec Flash, en tant que "backend" pour exécuter des fonctions complexes.
2 choses :
la première : voici un exemple de ma méthode FSCommand, qui réceptionne les requêtes Flash, sous la forme de 2 chaînes de caractères (command & args[0]), respectivement nom de méthode et (optionnellement) paramètre(s)
[code] def OnFSCommand( self, command, *args ) :
""" receive command from flash file """ self.command = command
if command == 'testCommand' : self.testCommand( args[0] )
Existerait-il un moyen de récupérer le no de commande et d'appeler :
self.$NomCommande( arguments si il y en a )
réponse courte: getattr(self, command)(*args)
plutôt que de devoir à chaque fois créer un "elif" et rajouter deux nouvelles lignes ??
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Titouille
Bonjour bruno,
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte: getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
Bonjour bruno,
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait
à ma demande. J'ai juste une petite question : quel est ce "**kwargs"
que tu passe en tant que 4ème argument à la fonction, et en argument à
la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte:
getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs):
self._command = command
method = getattr(self, command, None)
if method is None:
raise ValueError, "la commande %s est inconnue" % command
elif not callable(method):
raise ValueError, "%s n'est pas une commande" % command
method(*args, **kwargs)
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte: getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
NicolasP
Bonjour bruno,
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte: getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
*args permet de récupérer/passer des paramètres sous la forme d'une liste.
**kwargs permet de récupérer/passer des paramètres sous la forme d'un dictionnaire.
Je ne connais pas les détails, je suis débutant en python aussi.
Nicolas
Bonjour bruno,
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait
à ma demande. J'ai juste une petite question : quel est ce "**kwargs"
que tu passe en tant que 4ème argument à la fonction, et en argument à
la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte:
getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs):
self._command = command
method = getattr(self, command, None)
if method is None:
raise ValueError, "la commande %s est inconnue" % command
elif not callable(method):
raise ValueError, "%s n'est pas une commande" % command
method(*args, **kwargs)
*args permet de récupérer/passer des paramètres sous la forme d'une liste.
**kwargs permet de récupérer/passer des paramètres sous la forme d'un dictionnaire.
Je ne connais pas les détails, je suis débutant en python aussi.
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
Cordialement
Thierry
réponse courte: getattr(self, command)(*args)
réponse un peu plus élaborée:
def onFSCommand(self, command, *args, **kwargs): self._command = command method = getattr(self, command, None) if method is None: raise ValueError, "la commande %s est inconnue" % command elif not callable(method): raise ValueError, "%s n'est pas une commande" % command method(*args, **kwargs)
*args permet de récupérer/passer des paramètres sous la forme d'une liste.
**kwargs permet de récupérer/passer des paramètres sous la forme d'un dictionnaire.
Je ne connais pas les détails, je suis débutant en python aussi.
Nicolas
bruno modulix
Titouille wrote:
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
*args est un tuple d'arguments positionnels **kwargs ('kw' -> 'keyword') est un dictionnaire d'arguments nommés.
Python accepte les arguments positionnels *et* les arguments nommés. Quand tu écris un décorateur de fonction, il faut prendre ces deux possibilités en compte.
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Titouille wrote:
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait
à ma demande. J'ai juste une petite question : quel est ce "**kwargs"
que tu passe en tant que 4ème argument à la fonction, et en argument à
la méthode appelée ??
Si tu pouvais m'éclairer :)
*args est un tuple d'arguments positionnels
**kwargs ('kw' -> 'keyword') est un dictionnaire d'arguments nommés.
Python accepte les arguments positionnels *et* les arguments nommés.
Quand tu écris un décorateur de fonction, il faut prendre ces deux
possibilités en compte.
Merci beaucoup pour cet exemple qui a l'air de correspondre tout à fait à ma demande. J'ai juste une petite question : quel est ce "**kwargs" que tu passe en tant que 4ème argument à la fonction, et en argument à la méthode appelée ??
Si tu pouvais m'éclairer :)
*args est un tuple d'arguments positionnels **kwargs ('kw' -> 'keyword') est un dictionnaire d'arguments nommés.
Python accepte les arguments positionnels *et* les arguments nommés. Quand tu écris un décorateur de fonction, il faut prendre ces deux possibilités en compte.