pou151
Messages postés1Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention30 janvier 2009 30 janv. 2009 à 02:23
Super merci :P
cs_OphidiaN
Messages postés235Date d'inscriptionmercredi 4 avril 2001StatutMembreDernière intervention 9 novembre 2007 7 déc. 2007 à 16:32
Hello. Bah j'avoue c'est un peu ce que je cherchais, vu que je voulais transférer par XMLSocket des objets (sans utiliser des usines à gaz comme red5 ou autre). Cela dit une petite info trouvée en décompilant un swf utilisant remoting : ils ont aussi codé un système de sérialisation (malheureusement différent du serialize() php) mais assez intéressant. On le retrouve dans mx.data.binding, une classe ObjectDumper :)
ex:
var p = new Object();
p.a=6;
p.arr=new Array('test','lol');
p.b="salut";
je ne sais pas si amfphp utilise ce système pour transférer.. mais ça serait intéressant de voir ça.
Skreo
Messages postés53Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention25 août 2008 19 sept. 2006 à 18:19
T'es à coté de la plaque toi... Déjà dans le lien que tu passes c'est du JS, et en plus c'est pas simplement 2 appels de foncitons, mais regarde dans les fichiers js, les code est assez gros ^^
cs_xorax
Messages postés3Date d'inscriptionsamedi 29 novembre 2003StatutMembreDernière intervention19 septembre 2006 19 sept. 2006 à 12:52
Skreo
Messages postés53Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention25 août 2008 18 nov. 2005 à 21:16
Merci TOP30 !
En effet le code que tu proposes peut sembler plus lisible à beaucoup de personnes, mais pour moi c'est tout aussi lisible. Question d'habitudes ^^
Et tu dis que je n'ai fait que la moitier du boulot en ayant pas fait la classe pour php. Mais non j'ai tout fait, puisque les fonctions serialize et unserialize sont déjà incluses dans php !
Si c'était mon propre système, j'aurais justement fait un système en xml ou même beaucoup plus optimisé (comme j'ai fait pour la version 2 de mon site, qui n'est d'ailleurs pas encore sortie). Mais à ce moment là il faut créer la fonction équivalente en php.
Et comme il est plus simple d'utilise une fonction déjà existante dans php, et de plus qui prend beaucoup moins de ressources qu'une fonction de linéarisation qu'on inventerait, j'ai choisi de faire une copie de serialize() et unserialize() pour flash ;-)
Evidemment, pour les graphistes ou pour ceux qui ne développent pas d'applications flash communiquant avec un server web, cette source n'a pas grand interêt ^^
cs_Mafassure
Messages postés1058Date d'inscriptionjeudi 24 juillet 2003StatutModérateurDernière intervention14 février 2009 14 nov. 2005 à 20:45
Tiens c'est nouveau ça : bananatree est d'accord avec Macromédia....
comme quoi ;O)
BananaTree
Messages postés337Date d'inscriptionvendredi 15 octobre 2004StatutMembreDernière intervention 2 novembre 2010 14 nov. 2005 à 20:33
slt,
je ne veux pas entrer dans votre polémique, j'interviens juste au sujet des cadences.
moi je pronne une cadence de 12 FPS quasi systematiquement ! (étrangement, il se trouve que c la cadence "officieusement officielle" de macromedia.)
J'irai même plus loin : avec as2, les évènements EnterFrame devraient en toute logique être requalifiés en deprecated. (comprend qui veut).
++ et bon code.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 14 nov. 2005 à 16:23
lol, non, pas de "supèriorité", juste que j'ai constaté que beaucoup de programmeux venant de pho, c++, vb, cobold, fortran, pascal, etc... viennent ici en pensant maîtriser Flash et que certains ont même réinventés des fonctions déjà existantes (souviens-toi du "toLowerCase").
Mais pour ce qui est de l'AS2, je n'en ai aucune utilité car mes animations restent plutôt basiques et que je m'en tires trés bien avec de simples "split" et "join" pour envoyer au serveur mon quadrillage de terrain de jeu et que je n'ai pas besoin de "serialyze" pour enregistrer mes données. Après, que certains pensent ça utile, je n'en doute pas. Mais combiens de personnes utilisant Flash vont en avoir besoin ? N'est-ce pas tuer une mouche à coup de Bazooka ?
Après, le résultat est assez flagrand : il te reste à voir une source un minimum graphique comme celle de snakeeater1 (http://www.flashkod.com/code.aspx?ID=34447) où il y a 3 aplats et 2 dégradés un minimum fluide et que l'on donne comme commentaire : "GENIAL FRANCHEMENT, JE SAIS PAS QUOI DIRE , TU EST UN MAITRE DANS L'ART DU GRAPHISME." (Bali_Balo)
Ca prouve bien que tout le monde ici (ou alors une majorité) attendent des trucs un minimum graphique.
Je veux biens que Flash et l'ActionScript deviennent un language de programmation super complexe avec pleins de nuances, mais qu'on n'oublies pas sa fonction première : le multimedia. Et un "média", c'est pas que du code ....
Donc je suis désolé, mais je n'arrêterais pas de "TOUJOURS chialer sur la cadence des animations" comme tu dis, car pour moi c'est la base première de Flash. Que vous le compreniez ou pas.
Peg'
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 14 nov. 2005 à 15:57
Je sent dans ton commentaire comme une certainne "Supériorité"...
"...les gros programmeux" et les graphistes, comme si ces derniers étaient plus "fins" !!!!
Si c'est pas voulu la diplomatie n'est donc pas ton fort...
Et pour ton info, comme tu as pu le constaster je suis aussi graphiste ! Mais si tu veux faire du Flash, il faut assi suivre son évolution.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 14 nov. 2005 à 13:49
c'est certain qu'il y aura toujours une différence entre les "gros programmeux" et les graphistes ...
Je ne vais pas relancer la polémique, car ça ne sert à rien.
Peg'
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 14 nov. 2005 à 10:50
Attends Peg !
Je dis pas ca ni pour te soutenir, ni pour le casser !
je suis d'accord avec Skreo, que ton commentaire était pas des plus "constructif" !
Il est inconcevable d'imaginer un site SWF dynamique sans concept de "serialization" entre un language Server et Flash ! Sinon tu devrais "parser" ton retour de script à chaque utlisation de "loadVars" et là c'est SUPER galère. D'où l'avantage d'une Classe.
Le fait que tu ne "comprennes" pas le pourquoi d'une sérialization ( C'est ton commentaire qui me fait dire cela ) démontres que tu n'es pas encore passé au stade d'utiliser Flash comme outil d'affichage de données dynamiques.
Tiens en passant tu t'es mis à l'AS2, car l'AS3 pointe le bout de son nez....
PS : Même si je laisse pas beaucoup de commentaires, je lis toujours tous les commentaires des sources déposées. Et si tu voulais bien me faire une faveur, ca serait d'arrêter de TOUJOURS chialer sur la cadence des animations. C'est vraiment mais vraiment le dernier des sourcis. Le prend pas mal mais c'est lour de toujours lire même "coment".
A plus....
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 13 nov. 2005 à 23:36
Top, là, tu es mon dieu !!!! lol
Peg'
PS : "ironique" ? non, du tout, pour une fois, je suis trés sèrieux.
top30
Messages postés1158Date d'inscriptionvendredi 21 février 2003StatutMembreDernière intervention 6 août 2010 13 nov. 2005 à 23:32
Pour ce qui est de commenter la source, on peut commenter la "qualité" du code, pas le concept puisqu'il n est pas de toi. Le concept aurait put être original si tu avais "serializé" en XML par exemple.
Il n'y apas grand chose à changer à ton code pour que cela soit "efficace".
Pour ce qui est de ton code :
Là je crois que tu as du de "déchirer" la tête à le lire et le relire ! C'est tout saut claire.
Premier exemple :
private function replace ( ch1:String, ch2:String, texte:String ):String {
var tablotemp:Array=texte.split(ch1);
texte=tablotemp.join(ch2);
return texte;
}
if(typeof(serial)=="string"){ // Chaîne de caractères de la forme s:4:"test";
retour+="s:"+serial.length+":""+serial+"";";
}else if(typeof(serial)=="number"){ // Nombre
if(serial%1==0) { // On vérifie si le nombre est un entier ou un décimal
retour+="i:"+serial+";"; // Nombre entier de la forme i:34;
}else{
retour+="d:"+serial+";"; // Nombre à décimales de la forme d:34;
}
}
est super lourd à lire, ca dvrait être :
switch ( sType ) {
case "string" :
return ("s:"+serial.length+":"+serial+";" ) ;
// Pas besoin de mettre entre guillements.
// puisque tu identifies le String avec ton "s".
case "number" :
var id :String = (serial%1==0 ? "i" : "d" ) ;
return ( id+":"+serial+";" ) ;
// etc...
}
Ce qui sous entend que tes fonctions sont "difficiles" à lire et donc à corriger !
Et pour finir, c'est dommage qu'il n'y ai pas la Class PHP car finalement tu n'as fait que la moitié du boulot et personne ne va avoir envie de se prendre la tête à créer une fonction ou Class PHP déserializant TA PROPRE facon de serializer.
J'espère que cela t'aidera un peu...
5/10
kingcobra
Messages postés316Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention19 septembre 2012 13 nov. 2005 à 22:22
mdr ;)
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 13 nov. 2005 à 14:33
Ah ben si vous êtes des codeurs PHP, alors ...
Peg'
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 13 nov. 2005 à 12:12
Bah moi je trouve ca très astucieux comme principe ;) Je suis surtout codeur PHP, je n'utilise pas Flash même si j'ai lu tout le bouquin de O'Reilly ^^
Je me demandais justement si cest fonctions existaient en Flash, maintenant c'est fait :D. Pour ma part j'utilise très souvent ces fonctions en PHP :)
Skreo
Messages postés53Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention25 août 2008 13 nov. 2005 à 10:34
L'interêt est de pouvoir retravailler les variables linéarisée avec php en utilisant les fonction unserialize() et serialize() incluses dans php.
Et il y a sûrement un interêt à enregistrer les types de variable si les concepteur de php l'on fait ! Par exemple on ne sait pas forcément quel type de variable on a à extraire, et je te rappelle que Flash est beaucoup plus strict qu'avant sur les types.
Et en effet ma fonction peux linéariser également des object, alors que split ne le peut pas ^^ (bien sûr tu peux faire un simple for(var:iString in objet){} )
Puis-je avoir des commentaires sur la qualité de ma source par exemple svp ?
merci ^^
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 13 nov. 2005 à 09:53
Et pour les objects tu fais ca avec un split aussi ?
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 13 nov. 2005 à 06:58
Sauf que je ne vois pas l'interêt d'enregistrer les Types des variables. De plus pour un tableau, il suffit de faire un join() pour transformer ce dernieren variable et un split() de cette variable pour recréer un tableau ... et ceci à 1 ou plusieures dimensions !
Peg'
Skreo
Messages postés53Date d'inscriptionsamedi 12 novembre 2005StatutMembreDernière intervention25 août 2008 13 nov. 2005 à 00:19
Pas très constructif comme commentaire.
Au contraire ça peut être très utile pour enregistrer et/ou traiter un tableau qui a beaucoup de cellules ou plusieurs dimensions, par exemple pour une map d'un jeu.
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201312 12 nov. 2005 à 13:22
c'est vraiment se compliquer la vie pour pas grand chose ...
30 janv. 2009 à 02:23
7 déc. 2007 à 16:32
ex:
var p = new Object();
p.a=6;
p.arr=new Array('test','lol');
p.b="salut";
trace(mx.data.binding.ObjectDumper.toString(p, true, true,true))
trace:
{a: 6, arr: ["test", "lol"], b: "salut"}
la syntaxe d'un objet en flash en réalité.
je ne sais pas si amfphp utilise ce système pour transférer.. mais ça serait intéressant de voir ça.
19 sept. 2006 à 18:19
19 sept. 2006 à 12:52
pourquoi une classe quand on peut juste déclarer 2 fonctions, comme en php ?
http://www.xorax.info/blog/programmation/40-javascript-serialize-php.html
18 nov. 2005 à 21:16
En effet le code que tu proposes peut sembler plus lisible à beaucoup de personnes, mais pour moi c'est tout aussi lisible. Question d'habitudes ^^
Et tu dis que je n'ai fait que la moitier du boulot en ayant pas fait la classe pour php. Mais non j'ai tout fait, puisque les fonctions serialize et unserialize sont déjà incluses dans php !
Si c'était mon propre système, j'aurais justement fait un système en xml ou même beaucoup plus optimisé (comme j'ai fait pour la version 2 de mon site, qui n'est d'ailleurs pas encore sortie). Mais à ce moment là il faut créer la fonction équivalente en php.
Et comme il est plus simple d'utilise une fonction déjà existante dans php, et de plus qui prend beaucoup moins de ressources qu'une fonction de linéarisation qu'on inventerait, j'ai choisi de faire une copie de serialize() et unserialize() pour flash ;-)
Evidemment, pour les graphistes ou pour ceux qui ne développent pas d'applications flash communiquant avec un server web, cette source n'a pas grand interêt ^^
14 nov. 2005 à 20:45
comme quoi ;O)
14 nov. 2005 à 20:33
je ne veux pas entrer dans votre polémique, j'interviens juste au sujet des cadences.
moi je pronne une cadence de 12 FPS quasi systematiquement ! (étrangement, il se trouve que c la cadence "officieusement officielle" de macromedia.)
J'irai même plus loin : avec as2, les évènements EnterFrame devraient en toute logique être requalifiés en deprecated. (comprend qui veut).
++ et bon code.
14 nov. 2005 à 16:23
Mais pour ce qui est de l'AS2, je n'en ai aucune utilité car mes animations restent plutôt basiques et que je m'en tires trés bien avec de simples "split" et "join" pour envoyer au serveur mon quadrillage de terrain de jeu et que je n'ai pas besoin de "serialyze" pour enregistrer mes données. Après, que certains pensent ça utile, je n'en doute pas. Mais combiens de personnes utilisant Flash vont en avoir besoin ? N'est-ce pas tuer une mouche à coup de Bazooka ?
Après, le résultat est assez flagrand : il te reste à voir une source un minimum graphique comme celle de snakeeater1 (http://www.flashkod.com/code.aspx?ID=34447) où il y a 3 aplats et 2 dégradés un minimum fluide et que l'on donne comme commentaire : "GENIAL FRANCHEMENT, JE SAIS PAS QUOI DIRE , TU EST UN MAITRE DANS L'ART DU GRAPHISME." (Bali_Balo)
Ca prouve bien que tout le monde ici (ou alors une majorité) attendent des trucs un minimum graphique.
Je veux biens que Flash et l'ActionScript deviennent un language de programmation super complexe avec pleins de nuances, mais qu'on n'oublies pas sa fonction première : le multimedia. Et un "média", c'est pas que du code ....
Donc je suis désolé, mais je n'arrêterais pas de "TOUJOURS chialer sur la cadence des animations" comme tu dis, car pour moi c'est la base première de Flash. Que vous le compreniez ou pas.
Peg'
14 nov. 2005 à 15:57
"...les gros programmeux" et les graphistes, comme si ces derniers étaient plus "fins" !!!!
Si c'est pas voulu la diplomatie n'est donc pas ton fort...
Et pour ton info, comme tu as pu le constaster je suis aussi graphiste ! Mais si tu veux faire du Flash, il faut assi suivre son évolution.
14 nov. 2005 à 13:49
Je ne vais pas relancer la polémique, car ça ne sert à rien.
Peg'
14 nov. 2005 à 10:50
Je dis pas ca ni pour te soutenir, ni pour le casser !
je suis d'accord avec Skreo, que ton commentaire était pas des plus "constructif" !
Il est inconcevable d'imaginer un site SWF dynamique sans concept de "serialization" entre un language Server et Flash ! Sinon tu devrais "parser" ton retour de script à chaque utlisation de "loadVars" et là c'est SUPER galère. D'où l'avantage d'une Classe.
Le fait que tu ne "comprennes" pas le pourquoi d'une sérialization ( C'est ton commentaire qui me fait dire cela ) démontres que tu n'es pas encore passé au stade d'utiliser Flash comme outil d'affichage de données dynamiques.
Tiens en passant tu t'es mis à l'AS2, car l'AS3 pointe le bout de son nez....
PS : Même si je laisse pas beaucoup de commentaires, je lis toujours tous les commentaires des sources déposées. Et si tu voulais bien me faire une faveur, ca serait d'arrêter de TOUJOURS chialer sur la cadence des animations. C'est vraiment mais vraiment le dernier des sourcis. Le prend pas mal mais c'est lour de toujours lire même "coment".
A plus....
13 nov. 2005 à 23:36
Peg'
PS : "ironique" ? non, du tout, pour une fois, je suis trés sèrieux.
13 nov. 2005 à 23:32
Il n'y apas grand chose à changer à ton code pour que cela soit "efficace".
Pour ce qui est de ton code :
Là je crois que tu as du de "déchirer" la tête à le lire et le relire ! C'est tout saut claire.
Premier exemple :
private function replace ( ch1:String, ch2:String, texte:String ):String {
var tablotemp:Array=texte.split(ch1);
texte=tablotemp.join(ch2);
return texte;
}
devrait être :
private function replace ( oldTxt :String, newTxt :String, workingTxt :String ) :String {
return workingTxt.split(oldTxt).join(newTxt) ;
}
autre exemple :
if(typeof(serial)=="string"){ // Chaîne de caractères de la forme s:4:"test";
retour+="s:"+serial.length+":""+serial+"";";
}else if(typeof(serial)=="number"){ // Nombre
if(serial%1==0) { // On vérifie si le nombre est un entier ou un décimal
retour+="i:"+serial+";"; // Nombre entier de la forme i:34;
}else{
retour+="d:"+serial+";"; // Nombre à décimales de la forme d:34;
}
}
est super lourd à lire, ca dvrait être :
switch ( sType ) {
case "string" :
return ("s:"+serial.length+":"+serial+";" ) ;
// Pas besoin de mettre entre guillements.
// puisque tu identifies le String avec ton "s".
case "number" :
var id :String = (serial%1==0 ? "i" : "d" ) ;
return ( id+":"+serial+";" ) ;
// etc...
}
Ce qui sous entend que tes fonctions sont "difficiles" à lire et donc à corriger !
Et pour finir, c'est dommage qu'il n'y ai pas la Class PHP car finalement tu n'as fait que la moitié du boulot et personne ne va avoir envie de se prendre la tête à créer une fonction ou Class PHP déserializant TA PROPRE facon de serializer.
J'espère que cela t'aidera un peu...
5/10
13 nov. 2005 à 22:22
13 nov. 2005 à 14:33
Peg'
13 nov. 2005 à 12:12
Je me demandais justement si cest fonctions existaient en Flash, maintenant c'est fait :D. Pour ma part j'utilise très souvent ces fonctions en PHP :)
13 nov. 2005 à 10:34
Et il y a sûrement un interêt à enregistrer les types de variable si les concepteur de php l'on fait ! Par exemple on ne sait pas forcément quel type de variable on a à extraire, et je te rappelle que Flash est beaucoup plus strict qu'avant sur les types.
Et en effet ma fonction peux linéariser également des object, alors que split ne le peut pas ^^ (bien sûr tu peux faire un simple for(var:iString in objet){} )
Puis-je avoir des commentaires sur la qualité de ma source par exemple svp ?
merci ^^
13 nov. 2005 à 09:53
13 nov. 2005 à 06:58
Peg'
13 nov. 2005 à 00:19
Au contraire ça peut être très utile pour enregistrer et/ou traiter un tableau qui a beaucoup de cellules ou plusieurs dimensions, par exemple pour une map d'un jeu.
12 nov. 2005 à 13:22
Peg'