Bonjour,
je suis en train de créer un composant censé positionner dynamiquement des points sur un fond de plan (des places dans une salle pour être précis).
Lorsque le fond de plan est plus grand que le composant, des ascenseurs permettent le défilement.
Le fond de plan et les places sont positionnés dans un <s:Group/> avec un BasicLayout (donc positionnement absolu).
Mon problème : lorsque je scrolle, les coordonnées semblent être à une échelle différente pour l'image et les points.
Pour le constater, voir les pièces jointes.
J'ai un fond de plan avec une échelle numérotée de 1 à 20 (pour bien repérer où sont mes points).
Sans scroll, mon petit bonhomme est entre le 5 et le 6. Après un peu de scroll, on le retrouve presque en face du 7.
Le comportement est reproductible également avec un scroll horizontal.
Y a-t-il une raison logique à ça ? (j'imagine que oui )
Les points (places) sont positionnés dynamiquement par le code suivant :
seatData contient entre autres les coordonnées en X et en Y qui contraignent le composant Seat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 // Création des nouvelles places. for each (var sd:SeatData in _seats) { seat=new Seat(); seat.seatData=sd; // Alimentation des données du composant. roomContainer.addElement(seat); }
Le code (allégé) du composant contenant le fond de plan et les places :
Merci pour vos réponses
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 <s:BorderContainer xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:components="sia.gestion.components.*" xmlns:seat="sia.gestion.components.seat.*" width="100%" height="100%"> <s:Scroller width="100%" height="100%"> <s:Group id="roomContainer" horizontalScrollPosition="0" verticalScrollPosition="0"> <s:layout> <s:BasicLayout/> </s:layout> <mx:Image id="fondPlanImage" x="0" y="0" z="0"/> </s:Group> </s:Scroller> </s:BorderContainer>
Alban
Partager