[Flash] Eval probleem

Pagina: 1
Acties:

  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
Yoho,

We willen graag effe MC d, die in de library staat, in MC c te laden.
MC c heeft als _parent MC b, heeft als _parent MC a en die staat in de _root.

Dit is de code, heel simpel:
code:
1
2
path = "a.b.c";
_root[path].attachMovie("d", "d", 1);


Dus het pad ernaartoe in een variabele 'path' en die 'evallen'. Not! Werkt niet!

Verwijderd

hoe kom je aan die var path?
want als je iets dergelijks wilt doen moet het zo:
code:
1
_root['a']['b']['c'].attachMovie();

wat je ook kan doen is zorgen dat c gewoon een global var is ook, dus meteen _root['c']

misschien kan je de situatie wat duidelijker uitleggen als dit niet kan

[ Voor 45% gewijzigd door Verwijderd op 25-02-2004 14:24 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

eval is nooit nodig, gebruik het dan ook niet...

Intentionally left blank


  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
Verwijderd schreef op 25 februari 2004 @ 14:22:
hoe kom je aan die var path?
want als je iets dergelijks wilt doen moet het zo:
code:
1
_root['a']['b']['c'].attachMovie();

wat je ook kan doen is zorgen dat c gewoon een global var is ook, dus meteen _root['c']

misschien kan je de situatie wat duidelijker uitleggen als dit niet kan
path varieert elke keer. Elke keer moet d dus weer ergens anders opgehangen worden. Path kan ook net zo goed zo zijn:

path = 'q.t.b.d';

of ik noem maar wat. Je zegt net hoe iets dergelijks moet, maar dat kan hier dus niet.

  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
crisp schreef op 25 februari 2004 @ 14:24:
eval is nooit nodig, gebruik het dan ook niet...
Euh? Eval is nooit nodig? Leg uit.

Verwijderd

in js zou het eventueel zo kunnen (weet niet of alles exact hetzelfde gaat in as):
JavaScript:
1
2
3
4
5
6
var curObj = _root;
var pathArr = path.split('.');
for (var i=0; i<pathArr.length; i++) {
  curObj = curObj[pathArr[i]];
}
curObj.attachMovie("d", "d", 1);


maar hoe kom je aan die var path? typen mensen dat in ofzo? of stel je die string zelf samen? want in het tweede geval kan het vast anders

[ Voor 7% gewijzigd door Verwijderd op 25-02-2004 14:39 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

Murphy schreef op 25 februari 2004 @ 14:31:
[...]

Euh? Eval is nooit nodig? Leg uit.
in alle gevallen die ik tot nog toe gezien heb in JS en AS waarin eval werd gebruikt heb ik tot nog toe altijd betere alternatieven kunnen verzinnen. Eval is gewoon vies, foutgevoelig en traag.

Intentionally left blank


  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
Verwijderd schreef op 25 februari 2004 @ 14:37:
in js zou het eventueel zo kunnen (weet niet of alles exact hetzelfde gaat in as):
JavaScript:
1
2
3
4
5
6
var curObj = _root;
var pathArr = path.split('.');
for (var i=0; i<pathArr.length; i++) {
  curObj = curObj[pathArr[i]];
}
curObj.attachMovie("d", "d", 1);


maar hoe kom je aan die var path? typen mensen dat in ofzo? of stel je die string zelf samen? want in het tweede geval kan het vast anders
Ja, die verandert Actionscript steeds ... we parsen een XML document. Tis dus een beetje treeview-achtig.

Verwijderd

zoals Pelle zegt, eval is fout! gebruik hem nooit, in geen enkele programmeertaal. Gebruik dan this[path] en nog netter is a.b.c.attachMovie ()

[ Voor 16% gewijzigd door Verwijderd op 25-02-2004 15:04 ]


  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
Verwijderd schreef op 25 februari 2004 @ 15:04:
zoals Pelle zegt, eval is fout! gebruik hem nooit, in geen enkele programmeertaal. Gebruik dan this[path] en nog netter is a.b.c.attachMovie ()
this[path] ?
Euh, dat is een eval :)

Anyways! De manier van Mophor werkt! Gewoon uit een array trekken mbv. een lusje. Gewoon de rooie dropveter bij de rooie en hopperdeplop (je ziet mijn blijheid)

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Murphy schreef op 25 februari 2004 @ 15:10:
[...]


this[path] ?
Euh, dat is een eval :)

Anyways! De manier van Mophor werkt! Gewoon uit een array trekken mbv. een lusje. Gewoon de rooie dropveter bij de rooie en hopperdeplop (je ziet mijn blijheid)
Het gaat om het gebruik van eval() ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Murphy
  • Registratie: November 2000
  • Laatst online: 23-03 16:20

Murphy

(2B||!2B)?

Topicstarter
Heb ik het nooit over gehad :P

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 01:01

crisp

Devver

Pixelated

this[path] is geen eval, maar een manier om een property van een object te benaderen ;)

JavaScript:
1
2
3
4
var foo = 'alert';
var bar = 'jippie!';

window[foo](bar);


leuk dat javascript :)

[ Voor 39% gewijzigd door crisp op 25-02-2004 17:38 ]

Intentionally left blank

Pagina: 1