Toon posts:

[Flash 5] Bug??

Pagina: 1
Acties:

Verwijderd

Topicstarter
Oke of een bug of ik kan geen array's maken.

Men neme een nieuwe movie. neme frame 1 en plaats daar de volgende actionscript in.
code:
1
2
3
4
5
6
7
8
9
10
array = new Array;
arraz = new Array;

arraz[0] = "pietje";
arraz[1] = "keesje";
arraz[2] = "pietje";

array[0] = "hoi";
array[1] = "hoi";
array[2] = "hoi";

Test je movie met ctrl+enter en vraag de variabelen op met ctrl+alt+v. Notice dat arraz undefined blijft. Verander dan in de eerste twee regels y in z en z in y
code:
1
2
arraz = new Array;
array = new Array;

Opnieuw testen en variabelen check geeft dat nu wel beide array's werken.

Wie o wie heeft hier een verklaring voor??

Verwijderd

ik denk dat 'array'een gereserveerd woord is - dus niet gebruiken voor de naam van je array - dan zou je wel een rare dingen kunnen krijgen.

geen bug in flash, maar in je benaming dus...

Verwijderd

Topicstarter
Dan wordt ie dus helemaal mooi want 'array' werkt in het eerste geval wel maar 'arraz' blijft dan undefined. Of dan zou het zo moeten zijn dat hij bij "arraz = new Array" die eerste array probeert te nemen i.p.v. een nieuw Array object aan te maken.

Verwijderd

Interesse opwekkend :?

Verwijderd

ik denk dat 'array'een gereserveerd woord is - dus niet gebruiken voor de naam van je array - dan zou je wel een rare dingen kunnen krijgen.
geen bug in flash, maar in je benaming dus...
Nope dat is het dus niet :), is idd zo dat in het eerste geval van de twee arrays van Angelic de array wel werkt, en in het tweede geval niet, draai je ze om werken ze alle twee...
Interesse opwekkend :?
Als je niets te melden hebt zeg dan ook niets, mocht het niet 'interesse opwekkend' zijn zullen de modjes dat wel melden :(...

Verwijderd

Op maandag 01 april 2002 03:37 schreef Seraph het volgende:

[..]

Nope dat is het dus niet :), is idd zo dat in het eerste geval van de twee arrays van Angelic de array wel werkt, en in het tweede geval niet, draai je ze om werken ze alle twee...
[..]
Daarmee bewijs je dus dat het wel aan het keyword array ligt.
code:
1
2
3
4
5
6
7
8
9
arrat = new Array();
arraz = new Array();
arrat[0] = "pietje";
arrat[1] = "keesje";
arrat[2] = "pietje";

arraz[0] = "hoi";
arraz[1] = "hoi";
arraz[2] = "hoi";

Nu werkt ie wel.

Wat er gebeurd is is dat je een nieuw object genaamd array definieerd.
Als je een object definieerd kan je dat laten 'inheriten' door een ander nieuw object door nieuwobject = new [objectnaam](); te doen.
Op het moment dat je de naam array dan gebruikt, word dat een nieuw leeg object, met nog wel de goede properties, en bij de tweede keer probeert AS de props van array te inheriten, wat dus fout gaat om dat array ook een gereserveerd keyword is.

Verwijderd

code:
1
2
3
4
5
6
7
8
9
array = new Array;
arraz = Array;
arraz[0] = "pietje";
arraz[1] = "keesje";
arraz[2] = "pietje";

array[0] = "hoi";
array[1] = "hoi";
array[2] = "hoi";

Als je het op jouw manier werkend wil krijgen dan moet je ipv new Array; gewoon array neerzetten zoals ik hier boven heb gedaan, want je hebt immers gezegd dat array = new Array; waarmee je de werkelijk "waarde" van Array omzet naar new Array;

dus bij je arraz = new Array; staat in werkelijkheid arraz = new new Array; wat dus niet kan....
zorg er gewoon altijd voor dat je variabelen een naam geeft die niet overeenkomen met een vastgelegde functie oid, zodat er dit soort fouten niet kunnen ontstaan
Pagina: 1