| 12
 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(); | 
Partager