Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > Dynamique
Dynamique Flash Media Server / Flash Remoting
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/08/2007, 13h43   #1
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 0
Points : 0
Par défaut Optimiser les liaison Flash/PHP/XML

Bonjour à tous

Voila j'ai développé un petit jeu en flash, et celui ci gère un classement, dans un petit fichier XML (scores.xml) et je passe par un script PHP pour le mettre à jour.

Jusque là rien d'extraordinaire.

Mais j'aimerais savoir si il n'existe pas des méthodes + évolués pour faire cette "mise à jour".

Actuellement mon code flash utilie loadvar() et SendandLoad(), et mon code PhP utilise fopen/fputs .

Mon classement comporte 5 "entrées", les 5 meilleurs scores, mon script flash gére déjà une nouvelle entrée dans le cas ou un score le mérite (via des boucles avec un Array et une comparaison sur le score).

Mais n'existe t'il pas une méthode + adaptée n'obligeant pas a chaque fois d'écraser mon XML pour le re-écrire, mais simplement de mettre à jour les propriétés de chaque Node ?

genre un Childnote.attribute.score.update(variable) sous Flash ou PhP

J'ai chercher sur le web mais je trouve peu d'infos la dessus, pourtant il me semble que PhP 5 integre une meilleure gestion du XML non ?

Derniere question, dans le cas ou vous devriez mettre a jour plusieurs lignes d'un fichiers XML, quelle méthode utiliseriez vous ? un boucle ? (ce qui demanderais donc de pouvoir identifier les Node dans PHP non ?)
ou un basique envoie d'une seul chaine comprenant tout le fichier XML ?

Merci d'avance a ceux qui me répondront

ps : il me semble que la seule solution est de créer moi meme un "parser", estce vraiment le cas ?
renscrab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2007, 15h10   #2
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 0
Points : 0
eup !
renscrab est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 23h53   #3
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Bonjour,

Quelle version d'actionscript utilisez-vous ?

Si vous souhaitez absolumment passer par php pour la gestion du xml, je vous conseille d'aller voir :
http://eusebius.developpez.com/php5dom/
http://baptiste-wicht.developpez.com/tutoriel/php/rss/

Vous pouvez aussi gerer le XML du coté d'actionscript et ensuite le passer à php pour que celui-ci se charge juste de l'enregistrer sur le serveur par exemple.
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 20h20   #4
Rédacteur
 
Avatar de The_Pretender
 
Homme Matthieu DELOISON
Formateur ActionScript Flash
Inscription : juin 2004
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Matthieu DELOISON
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Formateur ActionScript Flash
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2004
Messages : 645
Points : 3 673
Points : 3 673
Bonjour,

Pour la gestion des xml, je te conseille le parseur du framework pixlib (la classe XmlToObject) qui est très puissante.

Ensuite pour communiquer de flash vers php et inversement sans te prendre la tête, le flash remoting est la solution de facilité, avec par exemple amfphp.
__________________
Découvrez : Tutoriels, ressources AS2 et AS3
La Méthode AS3 Facile pour développer des applications et jeux Flash en ActionScript 3 : ActionScript-Facile.com
The_Pretender est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/08/2007, 19h08   #5
Invité régulier
 
Inscription : août 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 9
Points : 9
Points : 9
Par défaut Utilise que PHP-mySQL seulement

Salut,

L'écriture du score est effectivement laborieuse pour le serveur, à chaque fois réécrire le fichier quand un seul score est à mettre à jour, c'est long.

Je serais toi je stockerais les scores dans la base mySql avec un update et je récupérerais uniquement les scores avec un sendAndLoad vers un mini script php, dans une seule variable.
La réponse serait du style :
scores=125,146,1500,325,524...etc

Salut
Chris
christophe92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2007, 22h23   #6
Membre confirmé
 
Inscription : janvier 2006
Messages : 705
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 705
Points : 229
Points : 229
Bonjour

Je me joins à vous car je ne connais pas amfphp. Jusqu'à maitenant j'ai toujours utilisé du xml avec sendAndLoad entre Flash (MX ou 8) et PHP pour lire ma base de données Mysql.

Si je comprends bien avec amfphp tout ceci se simplifie? c'est ça? Si quelqu'un peut m'aiguiller pour savoir s'il faut changer de méthode.

Merci !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Garra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2007, 01h01   #7
Rédacteur
 
Avatar de loka
 
Homme Romain PERRUCHON
Architecte - Expert Technique
Inscription : novembre 2004
Messages : 2 664
Détails du profil
Informations personnelles :
Nom : Homme Romain PERRUCHON
Âge : 30
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Architecte - Expert Technique
Secteur : Service public

Informations forums :
Inscription : novembre 2004
Messages : 2 664
Points : 3 607
Points : 3 607
Bonjour,

En effet l'utilisation de amfphp simplifie et est plus naturel que l'utilisation d'un fichier xml l'intermédiaire.
Pour t'en faire une idée, rien ne vaut un essai, fais un test sur une page simple avec les 2 cas (avec amfphp et sans).

Après souvent on a nos habitudes et c'est difficile de s'en défaire
__________________
SFML - API Multimédia C++ multiplateforme !
loka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2008, 22h58   #8
Membre Expert
 
Avatar de anapurna
 
Développeur informatique
Inscription : mai 2002
Messages : 1 581
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2002
Messages : 1 581
Points : 1 823
Points : 1 823
salut

et pourquoi ne pas utiliser tous simplement les webservice qui sont directement implementer dans flash ??

exemples :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
 
import mx.services.*;
   var wsdlURI = "http://www.monsite.fr/web-services/monwsdl.wsdl";
   // create the service    
   monService = new WebService(wsdlURI);
   // Handle the WSDL loading event.    
   monService.onLoad = function(wsdl) 
   { trace("--- onLoad");
     callphotos();
     trace("--- end onLoad");
   };
   // si le chargement du WSDL echou l'evenement onFault est declanché.    
   monService.onFault = function(fault) 
   { trace("--- rateService onFault");
      trace( fault.faultstring );
      trace("--- end rateService onFault");
   };
 
  function callphotos()
  { var 
       callback:PendingCall 
       callback = monService.searchphotos(); 
 
    // Handle a successful result. This is the important bit :-)    
    callback.onResult = function(result) 
    {  trace("--- Result");
	createGalerie(result);
 	trace("--- end Result");
     };
 
   // Handle an error result.    
    callback.onFault = function(fault)
    {  trace("--- callback onFault");
       trace( fault.faultstring );
       trace("--- end callback onFault");
     }
   }
 
 //Création de la galerie
   function createGalerie(noeuds) //liste des images
   {   //On parcours la liste
	 for (var i = 0; i<noeuds.length; i++) 
	 { //nom de l'image
	   var nom = noeuds[i].NOMFIC;
	   //On crée un clip vide et le positionne
	   var img = this.createEmptyMovieClip("img"+i, i);
	    img._x = (i%5)*55+400;
	   //On charge la miniature
          var mclListener:Object = new Object();
          mclListener.onLoadInit = function(target_mc:MovieClip) 
	   { trace("--- mclListener onLoadInit");
	      target_mc._height = 50; 
              target_mc._width = 50;
	      trace(target_mc._parent._name);
             trace("--- end mclListener onLoadInit");  
          };
     var 
        view:MovieClip = img.createEmptyMovieClip("view", getNextHighestDepth());
	var 
           mcLoader:MovieClipLoader = new MovieClipLoader();
           mcLoader.addListener(mclListener);
           mcLoader.loadClip("thumb/"+nom, view);
           img.onRelease = function() 
	   { popup(this.nom, this.width, this.height); };
	 }
   }
 
 //Lance une popup
   function popup(url, width, height) 
   { var lalargeur = Math.min(Number(width)+20, System.capabilities.screenResolutionX);
	 var lahauteur = Math.min(Number(height)+20, System.capabilities.screenResolutionY);
	 var t = (System.capabilities.screenResolutionY-lahauteur)/2;
	 var l = (System.capabilities.screenResolutionX-lalargeur)/2;
	 var propriete = "width="+lalargeur+",height="+lahauteur+",top="+t+",left="+l;
	 if (lalargeur == System.capabilities.screenResolutionX || lahauteur == System.capabilities.screenResolutionY) 
	 { propriete += ",scrollbars=1"; }
     getURL("javascript:void(window.open('"+url+"','image"+width+"','"+propriete+"'));");
   }
@+ Phil
__________________
Citation:
Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
Blaise Pascal
PS : n'oubliez pas le tag
anapurna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2008, 09h41   #9
Rédacteur
 
Avatar de The_Pretender
 
Homme Matthieu DELOISON
Formateur ActionScript Flash
Inscription : juin 2004
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Matthieu DELOISON
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Formateur ActionScript Flash
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2004
Messages : 645
Points : 3 673
Points : 3 673
J'utilise les classes remoting du framework pixlib car elles sont optimisées ce qui n'est pas toujours le cas des composants flash.

De plus ce framework apportent tout un tas de fonctionnalités très intéressantes (parser les xml en objet, modèle mvc front controller...).

En AS2 je te conseille d'essayer ce framework.
En AS3, le framework laura est encore plus performant, car basé sur le design pattern IOC (en gros : le xml construit les objets et appelle les fonctions correctes).
__________________
Découvrez : Tutoriels, ressources AS2 et AS3
La Méthode AS3 Facile pour développer des applications et jeux Flash en ActionScript 3 : ActionScript-Facile.com
The_Pretender est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web