Quand tu places des choses dans une scène FLASH, il se forme une espèce de hiérarchie.
Supposons que j´ai ma scène.
Sur ma scène je mets un movie clip nommé clip1 et un autre clip nommé clip2.
Dans mon movie clip nommé clip1, j´ai un autre movie clip que nous appellerons iclip.
Si je veux faire un morceau de code à l´intérieur de iclip qui doit affecter, par exemple, clip2, je ne peux PAS faire, toujours par exemple:
clip2.action(paramètres);
Pourquoi ? Tout simplement parce que iclip et clip2 ne sont pas sur le même niveau ( iclip est dans clip1 qui est sur la scène alors que clip2 est directement sur la scène).
Pour solutionner ce problème, tu dois entrer le chemin complet pour atteindre clip2:
_root.clip2.action(paramètres);
Ici, _root a pour objectif d´indiquer qu´on commence sur la scène ( ´root´ c´est de l´anglais pour ´racine´) et clip2 indique qu´on désire travailler sur ce clip qui est sur la scène.
Inversement, si, à partir de code DANS clip2, on voulait faire une action qui affecte iclip, on devrait faire:
_root.clip1.iclip.action(paramètres);
Parce que, ici, on part de la scène, on entre dans clip1 et on entre dans iclip qui est dans clip1.
--
En ce qui concerne le this._x > = 550, eh beh, le symbole > = signifie plus grand ou égal. Le problème c´est que ton personnage bouge sur la map à une certaine vitesse. Si, par exemple, tu changes sa valeur de _x de 8 à chaque frame lorsque la flèche de droite est enfoncée, la coordonnée _x du personnage augmente de 8 à chaque frame. Supposons que le personnage commence est à 530. Après une frame il sera à 538, ensuite il passera à 546 et, finalement, il arrivera à 554. La valeur de _x n´est donc, pour ce mouvement en particulier, JAMAIS égale à 550. Ainsi, la map ne peut pas changer.
De plus, je crois bien que la syntaxe
this._x = 550
Est entièrement incorrecte de toute façon. Ça fait un moment que j´ai pas fait de FLASH mais, de mémoire, le symbole = représente un assignation alors que le symbole == représente la comparaison d´égalité. Exemple:
this._x = 100;
Après cette ligne, la valeur de _x est de 100. Ainsi,
if(this._x = 100)
N´est jamais vérifié car, à chaque fois que cette ligne est lancée, _x devient égal à 100 et le if n´a aucun effet.
Parallèlement,
if(this._x == 100)
Compare la valeur de _x à 100 et, si _x est en effet 100, le test est vérifié et le contenu du if est alors éxecuté.
En d´autres mots, le symbole = sert à donner une valeur à une variable alors que == sert dans les comparaisons ( notamment dans les if).
Bonne chance