::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM
1
2
3
4
5
6
| // assign data retrievel function to object function getContent(functionName, id) { if (functionName <> "none") { siteService[functionName](id); } } |
dit bouwt dus aan de hand van een te geven functienaam een nieuwe functie (met die naam) en stuurt die naar siteService
[ Voor 65% gewijzigd door XangadiX op 19-10-2005 17:26 ]
Stoer; Marduq
::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM
deFunctie = "trace(blablabla)"
this.[deFunctie]();
... denk ik.
Ik heb even geen tijd om het uit te testen nu, maar zo moet het ongeveer werken ( evaluaten is vies trouwens )
Stoer; Marduq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| function dothis (command) { //split the command to get the pieces var comarr = command.split("."); //get the last piece to determine if the type of command var end = comarr.pop(); //the rest of the pieces put back together will be a reference to the object that executes the command var myobj = eval(comarr.join(".")); //if the last piece contains "=" then it is a property assignment var checkforprop = end.indexOf("="); //if the last piece contains "(" then it is a function of method call var startargs = end.indexOf("("); if (checkforprop>-1) { var prop = end.substring(0, checkforprop-1); var value = end.substring(checkforprop+1, end.length); myobj[prop] = value; } else if (startargs>-1) { var endargs = end.indexOf(")"); var args = end.substring(startargs+1, endargs); var method = end.substring(0, startargs); myobj[method](args); _root.answer = myobj[method](args) } } |
[ Voor 103% gewijzigd door KolNedra op 21-10-2005 11:07 ]
::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM
ik heb zelf een scriptje geschreven, het einde is een beetje omslachtig, maar kan 123 niet iets beters verzinnen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| function dothis(actie) { // Roept een zelfgemaakte functie aan (dus geen trace oid) actie = actie.substr(0,actie.length-1); ab = actie.split("("); abbb = ab[1]; for (o=2; ab[o]; o++) { abbb = abbb+"("+ab[o]; } abb = abbb.split(","); parameters = new Array(); for (tel=0;abb[tel];tel++) { abb[tel] = abb[tel].split("\"").join("").split("'").join(""); parameters[tel] = abb[tel]; } for (a=0;parameters[a];a++) { if (_root[parameters[a]]) { parameters[a] = _root[parameters[a]]; } } switch(parameters.length) { case 0 : _root[ab[0]](); break case 1 : _root[ab[0]](parameters[0]); break; case 2 : _root[ab[0]](parameters[0],parameters[1]); break case 3 : _root[ab[0]](parameters[0],parameters[1],parameters[2]); break case 4 : _root[ab[0]](parameters[0],parameters[1],parameters[2],parameters[3]); break //etcetera } } |
[ Voor 141% gewijzigd door KolNedra op 21-10-2005 11:08 ]
::: flickr.com/kolnedra ::: Nikon D80 + Sigma 18-200mm f/3.5-6.3 DC + Sigma 10-20mm f/4-5.6 EX DC HSM