<Een vriendelijke collega heeft mij intussen geholpen>
Het probleem zat hem in de volgende regel:
_root.createEmptyMovieClip(clipName,submenubreedte);
Oeps!! submenubreedte is helemaal niet bedoeld als z-index of depth...
Tsja, na uren code kijken zie je dat soort dingen over het hoofd....
--------------------------------------------------------------------------------
Scripttalen als asp, vbscript en javascript hebben nog maar weinig geheimen voor mij. Maar actionscript bezorgt mij nog altijd slapeloze nachten... Gelukkig ontdek ik steeds meer actionscript "eigenaardigheden"; allerlei uitzonderingen en situaties waar bepaalde code niet werkt.
Anyway, ik ben nu bezig om voor een klant een flash site te bouwen, en deze site moet met behulp van een content management systeem te beheren zijn. Zo ben ik nu bezig om een dynamisch menu te bouwen, wat zich moet opbouwen a.d.h.v. een xml bestand. Ik ben dus nu druk bezig met het schrijven van de scripts voor dit doel. Dit is overigens de eerste keer dat ik met xml werk...
Het is me tot nog toe aardig gelukt om de xml in te lezen, en het menu op te bouwen, maar het gaat nog niet helemaal goed. Ik denk dat het swf bestand voor zich spreekt; het opbouwen van het menu gaat niet goed (klik op "lopende projecten"). Het lijkt er op dat flash de movieclips uit het submenu wel wil opbouwen, maar dat de tekst niet weergegeven wil worden (of zoiets). In ieder geval ontbreken de volgende buttons in het submenu: "stadhuis vlissingen" en "gemeente maastricht".
Wie weet wat er fout gaat ??
SWF bestand:
http://kantoor.lucrasoft.nl/licht/flash.swf
Flash bestand:
http://kantoor.lucrasoft.nl/licht/flash.fla
XML bestand:
http://kantoor.lucrasoft.nl/licht/data.xml
De bijbehorende code:
Het probleem zat hem in de volgende regel:
_root.createEmptyMovieClip(clipName,submenubreedte);
Oeps!! submenubreedte is helemaal niet bedoeld als z-index of depth...
Tsja, na uren code kijken zie je dat soort dingen over het hoofd....
--------------------------------------------------------------------------------
Scripttalen als asp, vbscript en javascript hebben nog maar weinig geheimen voor mij. Maar actionscript bezorgt mij nog altijd slapeloze nachten... Gelukkig ontdek ik steeds meer actionscript "eigenaardigheden"; allerlei uitzonderingen en situaties waar bepaalde code niet werkt.
Anyway, ik ben nu bezig om voor een klant een flash site te bouwen, en deze site moet met behulp van een content management systeem te beheren zijn. Zo ben ik nu bezig om een dynamisch menu te bouwen, wat zich moet opbouwen a.d.h.v. een xml bestand. Ik ben dus nu druk bezig met het schrijven van de scripts voor dit doel. Dit is overigens de eerste keer dat ik met xml werk...
Het is me tot nog toe aardig gelukt om de xml in te lezen, en het menu op te bouwen, maar het gaat nog niet helemaal goed. Ik denk dat het swf bestand voor zich spreekt; het opbouwen van het menu gaat niet goed (klik op "lopende projecten"). Het lijkt er op dat flash de movieclips uit het submenu wel wil opbouwen, maar dat de tekst niet weergegeven wil worden (of zoiets). In ieder geval ontbreken de volgende buttons in het submenu: "stadhuis vlissingen" en "gemeente maastricht".
Wie weet wat er fout gaat ??
SWF bestand:
http://kantoor.lucrasoft.nl/licht/flash.swf
Flash bestand:
http://kantoor.lucrasoft.nl/licht/flash.fla
XML bestand:
http://kantoor.lucrasoft.nl/licht/data.xml
De bijbehorende code:
HTML:
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
| <?xml version="1.0" encoding="iso-8859-1"?> <hoofdmenu> <topmenu name="profiel"> <submenu name="filosofie" href="bla.asp"/> <submenu name="wie is lichtvormgevers" href="bla.asp"/> <submenu name="historie" href="bla.asp"/> <submenu name="onafhankelijkheid" href="bla.asp"/> <submenu name="doelstelling" href="bla.asp"/> <submenu name="gesprekspartners" href="bla.asp"/> <submenu name="activiteiten" href="bla.asp"/> <submenu name="branches" href="bla.asp"/> </topmenu> <topmenu name="lopende projecten"> <submenu name="stadhuis vlissingen" href="bla.asp"/> <submenu name="gemeente maastricht" href="bla.asp"/> <submenu name="gemeente den haag" href="bla.asp"/> <submenu name="justitie utrecht" href="bla.asp"/> <submenu name="tramtunnel den haag" href="bla.asp"/> <submenu name="holland casino groningen" href="bla.asp"/> <submenu name="holland casino zandvoort" href="bla.asp"/> <submenu name="holland casino amsterdam" href="bla.asp"/> <submenu name="ernst en young rotterdam" href="bla.asp"/> <submenu name="sportcentrum aspria brussel" href="bla.asp"/> </topmenu> <topmenu name="gerealiseerde projecten"> </topmenu> <topmenu name="lichtvorm"> </topmenu> <topmenu name="links"> </topmenu> <topmenu name="contact"> </topmenu> <topmenu name="exit"> </topmenu> </hoofdmenu> |
JavaScript:
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
| menu_xml = new XML(); menu_xml.ignoreWhite = true; menu_xml.onLoad = function(ok) { if (ok) { _root.xmldata = this; test(); createMainMenu(); } }; menu_xml.load("data.xml"); selectedbutton = ""; function emptytopmenuselection() { my_color = new Color(selectedbutton); my_color.setRGB(0x2F2D20); } function test(){ trace(submenuname = xmldata.firstChild.childNodes[0].childNodes[0].attributes.name); trace(submenuhref = xmldata.firstChild.childNodes[0].childNodes[0].attributes.href); } function createSubMenu(mainmenulevel) { mainmenulevel = mainmenulevel._name; int_mainmenu = mainmenulevel.substr(6); aantalsubmenu = xmldata.firstChild.childNodes[int_mainmenu].childNodes.length; nextposition = 50; nexti = 500; _root.createEmptyMovieClip("mc_submenu",0); _root.mc_submenu.beginFill(0x413F2C, 100); _root.mc_submenu.lineTo(720, 0); _root.mc_submenu.lineTo(720, 15); _root.mc_submenu.lineTo(0, 15); _root.mc_submenu.lineTo(0, 0); _root.mc_submenu.endFill(); _root.mc_submenu._x = 43; _root.mc_submenu._y = 61; for (i=0; i<10; i++) { _root["mc_submenu"+i].removeMovieClip(); } for (i=0; i<5; i++) { submenunaam = xmldata.firstChild.childNodes[int_mainmenu].childNodes[i].attributes.name; submenulengte = submenunaam.length; submenubreedte = submenulengte*9; trace("submenunaam = " + submenunaam); trace("submenulengte = " + submenulengte); trace("submenubreedte = " + submenubreedte); trace("nexti = " + nexti); trace("nextposition = " + nextposition); _root.createEmptyMovieClip("mc_submenu"+i,submenubreedte); _root["mc_submenu"+i].beginFill(0xCCCCCC, 100); _root["mc_submenu"+i].lineTo(submenubreedte, 0); _root["mc_submenu"+i].lineTo(submenubreedte, 25); _root["mc_submenu"+i].lineTo(0, 25); _root["mc_submenu"+i].lineTo(0, 0); _root["mc_submenu"+i].endFill(); _root["mc_submenu"+i]._x = nextposition; _root["mc_submenu"+i]._y = 61; _root["mc_submenu"+i].createTextField("subtekst"+i,0,0,0,300,25); _root["mc_submenu"+i]["subtekst"+i].text = submenunaam; _root["mc_submenu"+i]["subtekst"+i].selectable = false; _root["mc_submenu"+i]["subtekst"+i].textColor = 0xFFFFFF; _root["mc_submenu"+i]["subtekst"+i].setTextFormat(_root.tf_submenu); nexti += 1; nextposition += submenubreedte+2; } } function createMainMenu() { aantaltopmenu = xmldata.firstChild.childNodes.length; nextposition = 42; for (i=0; i<aantaltopmenu; i++) { topmenunaam = xmldata.firstChild.childNodes[i].attributes.name; topmenulengte = topmenunaam.length; topmenubreedte = topmenulengte*6.7; if(topmenubreedte>100){ topmenubreedte -= 5; } else if (topmenubreedte>50) { topmenubreedte += 2; } else { topmenubreedte += 10; } textfieldnaam = "textfield"+topmenunaam; //trace(topmenubreedte); _root.createEmptyMovieClip("button"+i, 100+i); //_root["button"+i].lineStyle(2, 0x000000, 100); _root["button"+i].beginFill(0x2F2D20, 100); _root["button"+i].lineTo(topmenubreedte, 0); _root["button"+i].lineTo(topmenubreedte, 25); _root["button"+i].lineTo(0, 25); _root["button"+i].lineTo(0, 0); _root["button"+i].endFill(); _root["button"+i]._x = nextposition; _root["button"+i]._y = 31; _root["button"+i].onRollOver = function() { if (selectedbutton !== this) { my_color = new Color(this); my_color.setRGB(0xAFA97A); } } _root["button"+i].onRollOut = function() { if (selectedbutton !== this) { my_color = new Color(this); my_color.setRGB(0x2F2D20); } } _root["button"+i].onRelease = function(i) { emptytopmenuselection(); selectedbutton = this; my_color = new Color(this); my_color.setRGB(0xAFA97A); createSubMenu(this); } createTextField("toptekst"+i,200+i,0,0,topmenubreedte,25); with (_root["toptekst"+i]){ text = topmenunaam; selectable = false; embedFonts = true; textColor = 0xFFFFFF; } _root["toptekst"+i].setTextFormat(tf_topmenu); _root["toptekst"+i]._x = nextposition; _root["toptekst"+i]._y = 33; //_root["toptekst"+i]._xscale = 101; nextposition += topmenubreedte+2; } } tf_topmenu = new TextFormat(); tf_topmenu.bullet = false; tf_topmenu.font = "Futura MdCn BT"; tf_topmenu.size = 16; tf_topmenu.color = 0xF9F4E0; tf_topmenu.align = "center"; tf_submenu = new TextFormat(); tf_submenu.bullet = false; tf_submenu.font = "Arial"; tf_submenu.size = 12; tf_submenu.color = 0xFFFFFF; tf_submenu.align = "left"; //toptekst1TextFormat.bullet = false; //toptekst1TextFormat.underline = true; //triangle._x = 50; //triangle._y = 20; |
[ Voor 13% gewijzigd door Verwijderd op 23-01-2004 15:18 ]