Bonjour,
Mon problème est simple : je cherche à rendre cliquable une image ...qui a un masque aplliqué dessus.
Un besoin vraiment simple mais qui, finalement, relève de l'enfer pour moi. Aprés moulte tests et quelques forums, j'en déduis que l'idée est donc de créer un 3ème clip qui récupérera le clic (via un hitArea). Mais mon problème n'avance pas (pour le faire de manière simple et propre).
Voici l'essai qui résume mon cas qui coince (avec la solution d'un 3ème clip) :
- circle s'apparente à l'image
- square2 à mon masque
- square est mon clip qui sera par dessus le masque et permettra la récupération du clic (si une solution sans le permet, je prends aussi)
Bref, dès que l'on applique un mask, perte du clic dans tous mes cas de figure, et je tourne en rond...
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 import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(80, 20, 40); var square2:Sprite = new Sprite(); square2.graphics.beginFill(0xCC00FF); square2.graphics.drawRect(50, 20, 100, 100); var square:Sprite = new Sprite(); square.graphics.beginFill(0xCCFF00); square.graphics.drawRect(190, 10, 100, 100); circle.hitArea = square; square.mouseEnabled = false; //square2.mouseEnabled = false; circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void{ trace("je suis une cercle => "+(event.target == circle)); trace("je suis une carré => "+(event.target == square)); } addChild(circle); addChild(square2); addChild(square); circle.mask=square2;
J'imagine que ce cas a évidemment une solution. Je suis en quête d'une piste, d'une aide.
En vous remerciant par avance.
Partager