PDA

Volledige versie bekijken : Hulp bij loadVars (nr=NaN)


Kamphuuza
%Europe/Berlin %498 %2006, 11:58
Een beginnersprobleempje ben ik bang, en ik hoop dat iemand hier op het forum mij hiermee verder kan helpen. Ik ben bezig met een flashcursus die op een website elders wordt aangeboden, hierin staat ook een les voor het maken van een simpel memoryspel.

Ik heb eerst de code met behulp van de website opgesteld, maar na mijn eerste test kwam er niets in het voorbeeldvenster te staan. Toen ik met de trace opdracht probeerde te achterhalen wat er mogelijk fout kon zitten zag ik dat hij geen nummers toekent aan de verschillende kaarten (of althans, dat denk ik).

Hieronder de code zoals ik hem nu in de eerste frame van de main timeline heb staan:

var stateArray = new Array();
stateArray[1] = "buns";
stateArray[2] = "frenk";
stateArray[3] = "chris";
stateArray[4] = "don";
stateArray[5] = "cas";
stateArray[6] = "michiel";
stateArray[7] = "dries";
stateArray[8] = "dries";
stateArray[9] = "don";
stateArray[10] = "moll";
stateArray[11] = "hans";
stateArray[12] = "buns";
stateArray[13] = "frenk";
stateArray[14] = "wilco";
stateArray[15] = "jaco";
stateArray[16] = "chris";
stateArray[17] = "ilie";
stateArray[18] = "sander";
stateArray[19] = "moll";
stateArray[20] = "hans";
stateArray[21] = "michiel";
stateArray[22] = "jaco";
stateArray[23] = "sander";
stateArray[24] = "cas";
stateArray[25] = "rogier";
stateArray[26] = "rogier";
stateArray[27] = "peter";
stateArray[28] = "ilie";
stateArray[29] = "wilco";
stateArray[30] = "peter";

var clickArray = new Array();
var d=0;
clickArray["card1"] = "none";
clickArray["card2"] = "none";
var cardWidth = 125;
var cardHeight = 85;

var startX = 45;
var startY = 45;
for (var i=0;i < 7;i++){
for (var j=0;j < 6;j++){
++Number;
trace("i=" + i + " j=" + j + " Number=" + Number)
this.attachMovie("card_mc","card_mc_" +i +"_"+j,++d);
this["card_mc_" +i +"_" +j]._x = (i*cardWidth)+ startX;
this["card_mc_" +i +"_" +j]._y = (j*cardHeight)+startY;
this["card_mc_" +i +"_" +j].Number = Number;
this["card_mc_" +i +"_" +j].deck_mc.gotoAndStop("default");
}
}

In eerste instantie had ik waar nu overal Number staat nr staan. Toen ik dacht dat hij de nummers niet herkende heb ik dit veranderd in Number.

Ik heb geen flauw idee waar de fout kan zitten, en misschien is dit wel een vrij simpele vraag, maar ik zou de hulp goed kunnen gebruiken. Alvast bedankt!

theFlashWizard
%Europe/Berlin %536 %2006, 12:51
gebruik voortaan even as tags ( [ as] [ /as]) aub :)

waarom niet
var stateArray = new Array("buns","frenk","chris","don");
ipv:
var stateArray = new Array();
stateArray[1] = "buns";
stateArray[2] = "frenk";
stateArray[3] = "chris";
stateArray[4] = "don";
?
overgens hoor je bij die laatste methode ook met 0 te beginnen. Arrays beginnen op 0 namelijk.

ipv this["card_mc_" +i +"_" +j] kun je dingen ook aanspreken onder card_mc als je dit van de attachMovie regel maakt:
var card_mc = this.attachMovie("card_mc","card_mc_" +i +"_"+j,++d);

overgens zie ik je dus var gebruiken.. dan heb jij niet flash mx.. dan heb je minimaal flash mx 2004.

omdat number al een naam is die flash zelf gebruikt zou ik zoiets opslaan onder de naam id.

De mc in de library die als kaart moet dienen heb je wel de linkagename "card_mc" gegeven?

Kamphuuza
%Europe/Berlin %559 %2006, 13:25
Ik heb idd Flash MX 2004 (professional). De mc in de library heb ik idd de linkage "card_mc" meegegeven, en ook heb heb ik deze mc gereed gemaakt voor export.
De stateArray begin ik nu op [0] en heb ook deze regel:var card_mc = this.attachMovie("card_mc","card_mc_" +i +"_"+j,++d); van je overgenomen, maar nog steeds geeft hij NaN aan. Wat kan er nog fout zijn in dit script, of is het een fout in bv. de card_mc?

deze les staat trouwens ook onder de link in je onderschrift; Lessen (http://www.bourgondien.nl/webklus/cursus/index.php), les 10 is het desbetreffende memoryspel.

theFlashWizard
%Europe/Berlin %576 %2006, 13:50
je wilt iets optellen bij iets dat nog niet bestaat.
Number (liever een andere naam) moet je eerst aanmaken.
voor de lus dus bijv:
var id = 0;
en dan in de for lus
++id;

Dat hij daar zo letterlijk staat en bij jou toch niet werkt kan komen omdat dat script gemaakt is voor as1.0 als je werkt met as2.0 (vanaf flash mx 2004) moet je variabelen aanmaken voordat je er wat bij op kan tellen.

Pas heel even je profiel aan naar mx 2004, anders kunnen we welleens de verkeerde adviesen geven.

Kamphuuza
%Europe/Berlin %587 %2006, 14:05
Ah bedankt, hij geeft nu in ieder geval niet meer de boodschap NaN en genereert nu gewoon de nummers die de graphics mee moeten krijgen. Heb alleen het probleem dat wanneer ik hem nu test ik nog steeds graphics zie in het testscherm, terwijl die er volgens het as toch zouden moeten komen (card_mc is daarvoor...)

theFlashWizard
%Europe/Berlin %595 %2006, 14:17
ik nog steeds graphics zie
niet ziet bedoel je denk ik?

vreemd, kun je het laatste script even toevoegen en mshn een fla?

Kamphuuza
%Europe/Berlin %598 %2006, 14:21
Ja dat bedoelde ik inderdaad ;) .

Hieronder de link naar de .fla
Klik hier (http://www.svzw8.nl/memory.fla)

[edit: helaas moet ik nu weg, ik hoop wel dat je me kunt helpen. Alvast bedankt!]

kevinrommen
%Europe/Berlin %606 %2006, 14:33
als je nu je fla naar de linkage van je card_mc kijkt staat de linkage aan. Dat klopt. Dat wil zeggen dat je hem dynamisch uit de library kan laden. Nu moet je de 3e functie daaronder ook aanvinken. Dat is "export in first frame". Dit wil zeggen dat flash die movieclip uit jouw swf inleest zodat je hem ook daadwerkelijk dynamisch op de stage kan zetten. Op dit moment zoekt flash naar een movieclip die hij niet kent. Ik hoop dat het een beetje duidelijk is. Als je het niet begrijpt zal ik het even goed uitleggen maar ben druk bezig

groet, Kevin

theFlashWizard
%Europe/Berlin %619 %2006, 14:51
je moest de onderste optie bij linkage ook aanvinken :)
verder zou ik dus nog even die card_mc = attach.. truc gebruiken.
ook heb je alle stop()'s in deck_mc niet nodig als je gotoAndStop() gebruikt.
en waarom gebruik je daar eigenlijk framelabels? lijkt mij niet handig en een heleboel werk

Kamphuuza
%Europe/Berlin %290 %2006, 06:58
Heel erg bedankt voor je hulp, hij werkt nu in ieder geval voor zover hij zou moeten werken. Die stop();'s en al die framelabels heb ik gebruikt omdat ze in die les zeiden dat dat moest, en tja, als je dan al niet veel ervaring met Flash hebt... Ik zal die truc van je ook nog even toepassen.

Nogmaals heel erg bedankt, als ik ooit nog eens wat hulp nodig heb ;)

dries123
%Europe/Berlin %850 %2007, 20:25
ik ben ook bezig met een memoryspel voor mijn eindwerk. maar wat moet je dan doen met de #include "card.as"? ik krijg iedere keer de foutmelding dat hij dat bestand niet vindt: **Error** Symbol=card_mc, layer=code, frame=1:Error opening include file card.as: File not found.

Hoe moet je hiermee mee verder?

BernardV
%Europe/Berlin %880 %2007, 21:07
ik ben ook bezig met een memoryspel voor mijn eindwerk. maar wat moet je dan doen met de #include "card.as"? ik krijg iedere keer de foutmelding dat hij dat bestand niet vindt: **Error** Symbol=card_mc, layer=code, frame=1:Error opening include file card.as: File not found.

Hoe moet je hiermee mee verder?

Begin hier een nieuw topic voor ;)
En ga over naar AS2 en classes.. maar in je nieuwe topic zal ik proberen je verder te helpen...