[Flash] 'eval' doet raar met gotoAndStop()

Pagina: 1
Acties:

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

Murphy

(2B||!2B)?

Topicstarter
Facts:

- 1 basis SWF die alles regelt vanuit _level0 ;
- daarbovenop een verschillende SWFjes die ook op verschillende levels ingeladen worden;
- die varierende levelnummers zitten in de variabelen LevelA, LevelB, enz.

Nu wil ik dus vanuit de basis SWF in _level0 aan een bovenliggende film vertellen dat ie naar label "start" moet gaan. Dit doe ik niet met TellTarget() want dat is niet stabiel. Normaal zou ik dan het volgende gebruiken:
code:
1
_level100.gotoAndPlay("start");

maar omdat de level variabel is en is opgeslagen in de variabele LevelA komt de regel er zo uit te zien:
code:
1
eval("_level" & levelA).gotoAndPlay("start");

('eval' zorgt er dus voor dat er _level100 komt te staan als de inhoud van LevelA 100 is)

Maar dit werkt dus niet!
En nu komt het vreemde, deze werkt wel:
code:
1
eval("_level" & levelA).gotoAndPlay(2);

(waarbij ik dus verwijs naar een framenummer in plaats van een framelabel)

Het ligt er dus aan dat ik naar een label verwijs. Op één of andere manier pikt Flash dat niet :? En wel als ik naar een framenummer verwijs?
Vreemd probleem, misschien een bugje? Of doe ik iets fout?

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 27-08 10:08

XangadiX

trepanatie is zóó kinderachtig

uit de axiescript reference:

Note The Actionscript eval action is not teh same as the JavaScript eval function and cannot be used to evaluate statements

volgens mij moet je gewoon

"level" & levelA invullen dus, maar ik ben hier ook niet zo heel erg handig mee :?

maar als ie dan wel weer naar een nummer verwijst; zou die framelabels niet mee dupliceren?

Stoer; Marduq


  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

eval('_level' + levelA).gotoAndPlay(2);
zal denk ik beter werken.
De '&' betekent in Flash 5 'bitwise and'. De oude '&' uit Flash 4 is in Flash 5 vervangen met '+' of 'add'.

Gemiddelde Nederlanders zijn maar halve Nederlanders.


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

Murphy

(2B||!2B)?

Topicstarter
Ja ja daar kwam ik ook achter :)
Maar werkt nog niet :(

Verwijderd

try:
code:
1
eval("_level" add Number(levelA)).gotoAndPlay(2);

  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Op dinsdag 27 november 2001 17:51 schreef Seraph het volgende:
try:
code:
1
eval("_level" add Number(levelA)).gotoAndPlay(2);
Aangezien '_level' al een string is, maakt het niets uit of levelA als string of nummer wordt gezien. :)

Bij mij werkt het trouwens gewoon. :?

Probeer eens met
code:
1
trace(typeof eval('_level' + levelA));

of de level wel bestaat op het moment dat je hem wilt aanroepen.

Geen verdwaalde stop-acties in het tweede frame?

Probeer .gotoAndPlay(2) eens te veranderen in .gotoAndPlay('2') voor de zekerheid.

Gemiddelde Nederlanders zijn maar halve Nederlanders.


  • tie-rep
  • Registratie: Oktober 2001
  • Laatst online: 19-02 15:56

tie-rep

nu met ir. !

zelfde probleem ook een keer gehad !
en het ergste: nooit de oplossing gevonden! :(

dussss, als iemand deze bug meester kan maken?! hou me aanbevolen!
Pagina: 1