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

[AS3] Variabele aanroep library item

Pagina: 1
Acties:

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Topicstarter
Ik ben een spelletje aan het maken waarbij er symbolen op blokjes staan. Bij een bepaalde situatie moet een symbool worden vervangen door een willekeurig ander symbool, dat random wordt gekozen uit 12 symbolen uit de Library met namen Symbol_1, Symbol_2 etc. Nu heb ik het huidige stukje code (voor eenvoud met maar 3 symbolen):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
var randomnumber = Math.floor(3*Math.random())+1;
var symbol;
switch (randomnumber){
    case 1:
    symbol = new Symbol_1;
    break;
    case 2:
    symbol = new Symbol_2;
    break;
    case 3:
    symbol = new Symbol_3;
    break;
}

Dit werkt prima, maar echt mooi is het niet. Als ik 1729 symbolen had werd het bijvoorbeeld nogal een zootje :P

Is het mogelijk om iets te schrijven zoals:
code:
1
2
3
var randomnumber = Math.floor(3*Math.random())+1;
var symbol;
symbol = new Symbol_+randomnumber;

Ik heb een paar random syntaxes geprobeerd maar ik krijg het niet werkend. Weet iemand of dit überhaupt mogelijk is?

[ Voor 5% gewijzigd door Bozozo op 30-07-2007 15:10 ]

TabCinema : NiftySplit


Verwijderd

Waarom heb je voor elk Symbol een eigen klasse (Ik ken AS verder niet, maar ik neem aan dat Symbol_* verschillende klasse zijn?). Wat is er verschil tussen Symbol_1 en Symbol_2? Dit klinkt voor mij namelijk eerder naar een fout in je ontwerp.

Anders moet je kijken of AS een soort van eval() functie heeft, maar dat is nogal een smerige work-around imho.

[ Voor 4% gewijzigd door Verwijderd op 30-07-2007 15:23 ]


  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Topicstarter
Tja, de verschillende symbolen hebben een verschilllend uiterlijk. Ik moet dus een plaatje aanroepen afhankelijk van het gekozen symbool.

TabCinema : NiftySplit


Verwijderd

Zoals ik al aangaf heb ik verder geen ervaring met AC, maar de manier waarop jij dit probeert op te lossen is zeker niet de goede.

Het plaatje moet in een soort van image holder staan. De inhoudt van deze image holder kun je dat at-runtime veranderen. Hierdoor heb je een vast object dat een plaatje bevat welke je kunt aanroepen.

Iets in de trand van (pseudo):
code:
1
2
3
4
var image = new ImageHolder();
var randomnumber = Math.floor(3 * Math.random()) + 1;

image.url(randomnumber + ".png");


Hoe dit in AC werkt mag je zelf uitzoeken :) maar dit is ongeveer de oplossing die je zoekt.

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

Topicstarter
Helaas, dit is een soort html code voor het oproepen van een bepaald plaatje. Zo'n soort code werkt dus niet met objecten uit de Library in Flash AS3, dat is precies mijn probleem. Ik wil geen variabele url aanroepen, maar een variabele class. Dus
code:
1
2
 variable_class = "mens";
var piet = new variable_class();

Waarbij "mens" een bestaande class (uit de Library in mijn geval) is. Ik weet niet of dit mogelijk is, laat staan hoe :|

Overigens gaat het om dit spelletje (0.00 MB), waarbij uiteindelijk elke kleur in iedere ring ( = 12 gevallen) een eigen symbool (sterrenbeeld glyphe) moet krijgen om het allemaal wat mystieker te maken. Druk op 1, 2 en 3 om de ringen te besturen als je je verveelt :+

[ Voor 4% gewijzigd door Bozozo op 30-07-2007 17:00 ]

TabCinema : NiftySplit