salut.

j'ai créé une interface qui permet de créer des graphes ( noeuds et arcs).
une fois cela fait ,l'utilisateur peut changer la position des noeuds avec la souris.
Bien évidement il faut que les arcs liés suivent ce mouvement.
voila la partie de code de ma classe Vertex (noeud):

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
 
        onMouseDragged: function( e: MouseEvent ):Void {
            if(e.primaryButtonDown)
              {
                X = e.x;//le noeud prend la position 
                Y = e.y;//du pointeur de la souris
 
                graph.debutArc = false;//pour empecher la creation 
                                       //d'un arc si on clique sur un autre noeud apres
                for(i in outArc){//pour tous les arcs sortant du noeud on change 
                    i.debutX = X;//leur position de depart
                    i.debutY = Y;
                }
                for(j in inArc){//pour tous les arcs entrant on change leur position 
                    j.finX = X; //d'arriver 
                    j.finY = Y;
                    print("x = ");
                    print(j.finX);
                    print("  y = ");
                    println(j.finY);
                }
            }
        }
Comme vous pouvez le voir j'ai divisé les arcs en inArc ( ceux qui entrent) et outArc ( ceux qui sortent ).

ca marche tres bien pour les arcs qui sortent( ils suivent le mouvement du noeuds ) par contre les noeuds entrant ne bougent pas ( pourtant leur position change et les quelques print que j'ai fais affirme cela

Mais ils prennent la nouvelle position dés que j'applique le meme evenement sur leur noeud de depart

voila ma classe Edge ( arc)
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
 
public class  Edge  extends CustomNode{
 
    var alpha: Number;
    var x: Number;
    public var debutX: Number;
    public var debutY: Number;
    public var finX: Number;
    public var finY: Number;
    public var graph: Graph;
    public var angleC: Number;
 
    var arc = Path {
        elements: [
            MoveTo {
                x: bind debutX
                y: bind debutY
            },
            ArcTo {
                x: bind finX
                y: bind finY
                radiusX: angleC
                radiusY: angleC - 10
            }
 
        ]
 
 
        onMousePressed: function( e: MouseEvent ):Void {
            if(e.secondaryButtonDown){
                delete this from graph.arcs;
            }
        }
    };
 
    override public function create(){
        arc      
}
}
    }
bon j'espere que j'etais clair

Merci