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

ActionScript 1 & ActionScript 2 Discussion :

Problème sur AS2/XML/Java


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 50
    Points : 34
    Points
    34
    Par défaut Problème sur AS2/XML/Java
    Bonjour,

    J'apprends actuellement le flash (AS2).. Je n'est pas beaucoup de connaissances actuellement mais j'essaye de résoudre ce premier souci .


    J'ai développer actuellement un "début" de jeu (personnage qui se dirige avec les fleches, et avec un "tchat")... Quelque chose de basique qui communique en XML vers un serveur JAVA (Aquaserv).

    Le problème est que je n'arrive pas à "charger" les personnages au lancement de la connexion au serveur. J'ai essayé de placer des lignes XML au "onConnect" mais rien y fait .. J'ai beaucoup de mal..


    Voici mon code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    vit = 10;
    _root.onEnterFrame = function ()
    {
        if (Key.isDown(38)) 
        {
            perso._y = perso._y - 10;
            perso.gotoAndStop(7);
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positionx="'+_root.perso._x+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positiony="'+_root.perso._y+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
            return;
        }
        if (Key.isDown(40)) 
        {
            perso._y = perso._y + 5;
            perso.gotoAndStop(5);
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positionx="'+_root.perso._x+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positiony="'+_root.perso._y+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
            return;
        }
        if (onKeyDown(40)) 
        {
            perso._y = perso._y + 5;
            perso.gotoAndStop(2);
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positionx="'+_root.perso._x+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positiony="'+_root.perso._y+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
            return;
        }
        if (Key.isDown(37)) 
        {
            perso._x = perso._x - 5;
            perso.gotoAndStop(5);
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positionx="'+_root.perso._x+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positiony="'+_root.perso._y+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
            return;
        }
        if (Key.isDown(39)) 
        {
            perso._x = perso._x + 5;
            perso.gotoAndStop(6);
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positionx="'+_root.perso._x+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    		texteSend = new XML('<deplacement pseudo="'+_root.pseudo+'" positiony="'+_root.perso._y+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
            return;
        }
        perso.gotoAndStop(1);
    }
    ;
     
    bEnvoyer.onRelease = function()
    {
    	if(_root.texte!="") // si la zone de texte n'est pas vide
    	{
    		// on crée une nouvelle chaine xml avec le pseudo et le texte ...
    		texteSend = new XML('<message pseudo="'+_root.pseudo+'" value="'+_root.texte+'"/>'); 
    		_root.socket.send(texteSend); // ... et on l'envoi au serveur
    	}
    	_root.texte=""; // on vide la zone de texte (plus confortable pour le chatteur)
    }
     
     
    // associée à onConnect
    function connexion(isOk)
    {
    	if(isOk) // la connection s'est bien déroulée
    	{
    		texteSend = '<message pseudo="'+_root.pseudo+'" action="viens de se connecter" />'; 
    		socket.send(texteSend); // on envoit automatiquement à tout le monde un message d'arrivée
    	}
    	else _root.Area.text="Echec de la connexion !"; // message d'erreur
    }
     
    // associée à onXML
    function reception(chainee)
    {	
    	trace(chainee);
    	prev = chainee.previousSibling;
    	chaine = chainee.firstChild; // on regarde le premier fils (il est seul donc pas de pb)
    	while (chaine.nodeName == null) // on parcours tous les noeuds jusqu'à en trouver un non nul
    	{
    		chaine = chaine.nextSibling;
    	}
    	if (chaine.nodeName == "message") // notre noeud message est detecté
    	{
    		// on affiche alors le contenu de l'attribut pseudo et de l'attribut value
    		if (chaine.attributes.value.length != null) { 
    		_root.Area.text+=chaine.attributes.pseudo+"> "+chaine.attributes.value+"\n"; }
    		if (chaine.attributes.action.length != null) { 
    		_root.Area.text+=chaine.attributes.pseudo+" "+chaine.attributes.action+"\n";
    		}
     
    		// on scroll la zone de texte si nécessaire
    		if(_root.Area.scroll < _root.Area.maxscroll)
    			_root.Area.scroll++;
    	}
    	if (chaine.nodeName == "deplacement") // notre noeud message est detecté
    	{
    		if (chaine.attributes.positionx.length != null) {
    			_root.Area.text+=chaine.attributes.pseudo+" à changer de position (x) en : "+chaine.attributes.positionx+"\n";
    				if (positionx == undefined) { positionx = chaine.attributes.positionx; }
    				if (positionx < chaine.attributes.positionx) { depl = "droite"; } else { depl = "gauche"; } // Déplacement ?
    					if (chaine.attributes.pseudo != pseudo) {
    					reference = perso.duplicateMovieClip('perso_1',2);
    					perso_1._x = chaine.attributes.positionx;
    					perso_1._y = chaine.attributes.positiony;
     
    					} // Detection d'un mouvement ?
     
    				positionx = chaine.attributes.positionx;
    		}
    		if (chaine.attributes.positiony.length != null) {
    			_root.Area.text+=chaine.attributes.pseudo+" a changer de position (y) en : "+chaine.attributes.positiony+"\n";
    		}
     
    		// on scroll la zone de texte si nécessaire
    		if(_root.Area.scroll < _root.Area.maxscroll)
    			_root.Area.scroll++;
    	}
    }
     
    // s'execute lors du tout premier chargement de cette scene
    // (sécurité pour ne pas multiplier les connexions d'un meme client)
    if(!interdit) 
    {
    	IP = "127.0.0.1";
    	PORT = 1024;
    	socket = new XMLSocket(); // nouvelle instance de XMLSocket()
    	socket.onXML = reception; // à la reception d'un message du serveur, reception(chaine) sera exécutée
    	socket.connect(IP, PORT); // connexion au serveur sur le port 18000
    	socket.onConnect = connexion; // dés que la connexion a lieu, connexion() est lancée
    	interdit=true; // la scene a été chargée une première fois donc true
    }
    stop();

    N'oubliez pas que mes connaissances sont limité

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Points : 35
    Points
    35
    Par défaut
    Hum... et bien tu pourrais lister chaque personnage dans une base de donnée, par exemple tu fais une table joueur avec les champs : [Pseudo, Etat_connexion].
    Et quand un client se connecte, tu passe le champ Etat_connexion en true, et lorsqu'un client se deconnecte, tu le passe en false.

    Ensuite, dans flash dans ton onConnect(), tu va lire la base de donnée, et lister les personnages connecté, ensuite tu les affiches avec un attachMovie();

    Voilà, en espérant t'avoir aidé, sinon hésite pas à redemander ^^

    Cordialement Deimon's Blood;

Discussions similaires

  1. Problème ant build.xml Java
    Par helene90 dans le forum ANT
    Réponses: 17
    Dernier message: 17/12/2013, 14h55
  2. Problème sur mon serveur Java
    Par toutouz dans le forum Java EE
    Réponses: 0
    Dernier message: 24/04/2013, 13h45
  3. Réponses: 2
    Dernier message: 11/10/2012, 14h33
  4. Problème sur un devoir Java
    Par Al PiGiNo dans le forum Langage
    Réponses: 2
    Dernier message: 22/12/2011, 23h20
  5. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14

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