Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[FLASH] Probleem met samengestelde variabelen

Pagina: 1
Acties:

  • BasNation
  • Registratie: Mei 2004
  • Laatst online: 12-10 13:14
Ik ben onderhand redelijk handig aan het worden met Flash maar ActionScript zit me nog steeds ontzettend vaak dwars en ik probeer het dan ook zoveel mogelijk te vermijden aangezien ik het ontwerpen leuker vind dan het coden.

Anyway, here goes...

Ik heb een menu met knoppen, iedere knop moet de _alpha waarde van een bepaalde graphic diep in een movieclip bepalen. Makkelijk zou je zeggen... maar ik gebruik zelfgekluste "pagina transities" dus de _alpha mag pas aangepast worden op een bepaald moment op de timeline van de target movieclip.

Mijn AS in de _root timeline voor de knoppen ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
hotspot1.onRelease = function() {
    _global.page_to_load = "1";
    menu_container.play();
};
hotspot2.onRelease = function() {
    _global.page_to_load = "2";
    menu_container.play();
};

Dit zorgt er dus voor dat de timeline van het menu gaat lopen en uiteindelijk bij het punt aankomt waarbij het gaat kijken welke pagina/plaatje nu geladen moet worden. Alle pagina's hebben dezelfde instance naam maar met een ander nummer op het eind dus ik dacht er makkelijk vanaf te komen en de volgende AS te plaatsen op het moment op de timeline wanneer de overgang plaats moet vinden.
code:
1
2
3
var page_load_now = ["pageprefix_"+page_to_load];
    this.page_load_now._alpha = 100;
};

Dit lijkt voor geen meter te werken maar als ik er een trace tussen zet:
code:
1
2
3
4
var page_load_now = ["pageprefix_"+page_to_load];
    this.page_load_now._alpha = 100;
    trace(page_load_now);
};

code:
1
2
pageprefix_1
pageprefix_2

Dan krijg ik wel de juiste output :S. Kennelijk wordt de variabele wel goed doorgegeven maar kan deze niet als zodoende gebruikt worden in de this.xxxxxx._alpha vorm.

Bij voorbaat dank en hopelijk ben ik duidelijk genoeg geweest.

Welterusten.


p.s. Excuses voor de titel, ik wilde eerst de tekst schrijven en daarna de titel, maar ben het vergeten 8)7 .

[ Voor 4% gewijzigd door BasNation op 01-02-2008 02:07 ]


Verwijderd

Wat moet je titel zijn?

[ Voor 4% gewijzigd door Verwijderd op 01-02-2008 02:09 ]


  • BasNation
  • Registratie: Mei 2004
  • Laatst online: 12-10 13:14
[FLASH] Probleem met samengestelde variabelen

of zoiets :)

Verwijderd

Wat jij wilt :P

[ Voor 3% gewijzigd door Verwijderd op 01-02-2008 02:19 ]


  • sanderb
  • Registratie: November 2000
  • Laatst online: 07:35
je trace output niet meer dan een string.
Wanneer je een referentie naar een movieclip traced, zul je altijd ook het niveau van die clip terugzien in je output.
Bijvoorbeeld: _level0.myClip.yourClip.ourClip;
Dit zou wel werken: this.["pageprefix_"+page_to_load];

probeer dit maar eens:
Flash ActionScript:
1
2
    this.["pageprefix_"+page_to_load]._alpha = 100;
    trace(this.["pageprefix_"+page_to_load]);

" A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. " - Douglas Noel Adams


  • BasNation
  • Registratie: Mei 2004
  • Laatst online: 12-10 13:14
Dat is dus precies hoe de code er eerst uit zag, daarmee was ik begonnen. Deze manier vind hij echter niet leuk (ook de trace werkt dan niet) want dan krijg je deze error:

code:
1
Expected a field name after '.' operator.

Hij kan zo'n samengestelde naam niet als field name herkennen kennelijk.

[ Voor 13% gewijzigd door BasNation op 01-02-2008 14:01 ]


  • Mir
  • Registratie: Maart 2001
  • Niet online

Mir

Probeer
code:
1
this["test" + i]


zonder de '.' na this. Je moet this in dit geval behandelen als een array.

  • BasNation
  • Registratie: Mei 2004
  • Laatst online: 12-10 13:14
YES HET WERKT :D. hartelijk dank Mir... weer wat geleerd.
Pagina: 1