Bonjour, je ne comprends vraiment pas ce qu'il se passe. Ca marchait au debut, puis j'ai modifié quelques trucs ailleurs (sans vraiment de rapport avec ça) puis plus tard j'ai remarqué que ça ne fonctionnait plus. Ca fait 2h que je suis dessus, je craque:
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
<?xml version="1.0" encoding="utf-8"?>
<s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx"
		 skinClass="skins.ScaleSampleSkin"
		 backgroundAlpha="0.5" backgroundColor="0x0099ff" backgroundColor.over="0xff9900" 
		 rollOver="rollOverHandler(event)" rollOut="rollOutHandler(event)">
	<fx:Script>
		<![CDATA[
			import assets.Resources;
 
			import gardeneditor.gardenplan.Item_line;
			import gardeneditor.toolbar.ToolEvent;
 
			private var _item:Item_line;
			private var _realSize:Number;
			[Bindable]
			protected var _scale:Number;
 
			public function get item():Item_line
			{
				return _item;
			}
 
			public function set item(value:Item_line):void
			{
				if(value !== _item){
					_item = value;
					_item.addEventListener(MouseEvent.ROLL_OVER,rollOverHandler);
					_item.addEventListener(MouseEvent.ROLL_OUT,rollOutHandler);
				}
			}
 
			[Bindable]
			public function get realSize():Number
			{
				return _realSize;
			}
 
			public function set realSize(value:Number):void
			{
				_realSize = value;
				_scale = calcScale();
			}
 
			protected function calcScale():Number{
				var p0:Point = item.points[0];
				var p1:Point = item.points[1];
				var distance:Number = Point.distance(p0,p1);
				return realSize / distance;
			}
 
			protected function deleteButton_clickHandler(event:MouseEvent):void
			{
				dispatchEvent(new ToolEvent(ToolEvent.ITEM_DELETE,item,null,null,this));
			}
 
			protected function rollOverHandler(event:MouseEvent):void
			{
				currentState = "over";
				invalidateSkinState();
				item.isActive = true;
			}
 
			protected function rollOutHandler(event:MouseEvent):void
			{
				currentState = "normal";
				invalidateSkinState();
				item.isActive = false;
			}
 
		]]>
	</fx:Script>
	<s:states>
		<s:State name="normal"/>
		<s:State name="over"/>
	</s:states>
	<s:layout>
		<s:HorizontalLayout verticalAlign="middle"/>
	</s:layout>
	<s:Label text="{currentState}"/>
	<s:Label id="scaleText" text="{Math.round(_scale*10000)/10000}"/>
	<!--<s:Button id="deleteButton" icon="{Resources.BUTTON_CLOSE}" click="deleteButton_clickHandler(event)" skinClass="skins.IconButtonSkin" buttonMode="true"/>-->
</s:SkinnableContainer>
Je sais que le rollOver fonctionne, vu qu'en debug, je vois qu'il passe dans la fonction "rollOverHandler" et il passe sur la ligne "currentState = 'over'"
Mais rien à faire, l'état ne change pas.
Auriez vous une idée?