Iets waar ik vaak tegenaan loop:
Het probleem is nu de interactie met de Stage. Op regel 19 wil ik een variabele op de Stage veranderen, namelijk een currentSelection variabele op 'this' zetten. Als er op de Stage of op een ander object wordt geklikt, dan moet namelijk de 'deselect()' functie van currentSelection worden aangeroepen.
Hoe kun je dat nou het beste organiseren? Meestal maak ik een of ander object (stageVars) dat als parameter aan alle andere objecten die met de Stage communiceren wordt meegegeven. Een andere optie is om dit soort events op de Stage zelf af te handelen (één onClick, en dan het 'target' property gebruiken om het juiste element aan te spreken).
Hoe doen jullie dit soort communicatie?
Flash ActionScript 3:
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
| package { import flash.display.MovieClip; import flash.events.MouseEvent; public class levelTile extends MovieClip { public function levelTile() { this.addEventListener(MouseEvent.CLICK,this.handleClick); } private function handleClick(event:MouseEvent):void { this.select(); } private function select():void { //graphically highlight this object //tell the stage that this object is now selected } private function deselect():void { //graphically unhighlight this object } } } |
Het probleem is nu de interactie met de Stage. Op regel 19 wil ik een variabele op de Stage veranderen, namelijk een currentSelection variabele op 'this' zetten. Als er op de Stage of op een ander object wordt geklikt, dan moet namelijk de 'deselect()' functie van currentSelection worden aangeroepen.
Hoe kun je dat nou het beste organiseren? Meestal maak ik een of ander object (stageVars) dat als parameter aan alle andere objecten die met de Stage communiceren wordt meegegeven. Een andere optie is om dit soort events op de Stage zelf af te handelen (één onClick, en dan het 'target' property gebruiken om het juiste element aan te spreken).
Hoe doen jullie dit soort communicatie?