Det er der. Jeg kan se det ser ud til du har styr på det - så rart at du er med :)
Jeg benytter Flash 5.
Det jeg gør nu er:
jeg har en menu. menuen er et MC, som når man releaser button 1 f.eks. spiller hen til frame 20 hvor følgende står: loadVariablesNum ("vision.txt", 0); stop ();
teksten vision.txt er lavet i notepad og ligger i samme mappe.
I frame 20 har jeg lavet en "tekstholder", som: dynamisk text, multiline og sat kryds i selectable.
_________
Jeg har en mistanke om at txt bliver loadet ok, men at den ikke ved hvor det skal stå, idet jeg jo ikke kan finde et sted at navngive tekstholderen og heller vise hen til den fra de actions der er i frame 20.
OK, nu har jeg fået det til at virke, men hvordan koder jeg i txt-filen for font-størrelsen - hvis jeg kun vil have et textfelt, men at jeg i txt-filen skal kunne lave noget text større end andet?
Jeg har også fundet ud af det med font størrelser, men..
Hvordan får jeg en txt-fil ind uden at lægge koden på en knap?
Knapperne fungerer og loader det fint ind.
Bortset fra at det kun er feltet "textdata" der virker (kan jeg ikke selv definere mine variable?)
Derudover - hvis jeg forsøger at sætte actions på et tomt lag i 1ste frame skulle man jo tro at den bare ville gøre det, men den åbner et explorervindue med txt-filen???
Okay, ser du har gang i en omgang hardcore "learning by doing" :o)
Importering af tekst i Flash 5 er lidt mere omstændelig end i MX/MX 2004. Det skyldes at man ikke har loadVars-objektet til rådighed, som ellers giver god kontrol over hvad man henter og ikke mindst hvad der skal ske når tingene er blevet hentet.
Det du oplever er, at Flash ikke har fået læst tekstfilen før du prøver at sætte dens indhold ind i et tekstfelt. Derfor virker det med knappen. I princippet kan du bare vente med at sætte tekstfeltets indhold til langt ude på tidslinjen, men det er IKKE nogen køn løsning, da man aldrig præcis kan forudsige hvornår et tekstdokument er læst ind og klar til brug. I stedet kan du bruge en onClipEvent(data). Du laver simpelthen et mc, hvis eneste formål er at sidde og vente på at der sker noget - at teksfilen er hentet ind. Du kan placere dette mc udenfor stagen eller gøre det usynligt med _visible = false;
Tricket er at du loader ind i dette mc i stedet for til en level som du gør nu. Lad os kalde mc'et "loadMC":
loadVariables("vision.txt", loadMC);
På mc'et sætter du så koden (kender ikke stierne i din film, så dem sjusser du selv til):
Jeg kan ikke få det til at virke. JEg tror det er fordi jeg ikke er sikker på hvad i det du skriver der er hvad:
Der er jo:
1. tekstfilens navn 2. textvariablens navn (defineret i text-menuen) og som der refereres til i textfilen 3. Det mc's navn jeg vil have teksten ind i på scenen 4. Det MC som clipeventen skal ligge i der ligger udenfor scenen
faktisk indeholder min "diverse"-mc 5 forskellige tekstfelter der loader hver deres tekst - disse er jo også i txt-filen "front.txt".
Front.txt ser som test sådan ud:
&header= and goes the headline &newsheader= and goes the news headlines &tekstdata= and here goes the newstext &diverse= and here goes the diverse &ratings= Heartless_Chrome 2122 <br>Heartless_Tangra 2122<br> Heartless_Guru 2122 the rest Lousy Heartless_Chrome 2122 Heartless_Tangra 2122 Heartless_Guru 2122 the rest Lousy
Der er som du kan se 5 variable som gerne skulle stå på scenen fra starten.
_________________
Dette er hvad jeg har gjort med det du sagde:
lavet et mc udenfor scenen (loadmc). Jeg har højreklikket på det og indsat disse actions:
Fejlen fra min side kan meget vel være syntaktisk. Det er længe siden jeg har arbejdet i Flash 5.0, så er ikke 100% sikker på hvad der er gammel/ny syntaks (eller rettere sagt: "præcis hvad 5.0 understøtter").
Som jeg læser det, har du problemer med loadVariables. Det der sker når du loader ind i et mc er, at dine variable kommer til at ligge inde i det. Det er faktisk ganske praktisk, for så ved man hvor de er (derfor navnet loadMC). Du kan tjekke om der rent faktisk bliver loadet noget ind i mc'et:
onClipEvent (data) { trace("Data er kaldt. Udskriver den noget her: " + diverse); // Udskriver til output-vinduet }
Hvis ovenstående virker, er der helt sikkert hul igennem, og så skal vi bare referere rigtigt til dine tekstfelter. Når jeg anstrenger mig meget (og det er svært mandag morgen ;o) så mener jeg at kunne huske, at .text-propertien først er kommet til senere i Flash, derfor bør den korrekte sti til indholdet af et tekstfelt som hedder "tekstfelt" og ligger i _root:
_root.tekstfelt = "bla bla bla"; // variabelnavn på højre side af lighedstegnet for dig.
altså samlet, noget i retning af: onClipEvent (data) { _root.tekstfelt1 = header; _root.tekstfelt2 = newsheader; _root.tekstfelt3 = tekstdata; _root.tekstfelt4 = ratings; _root.tekstfelt5 = diverse; }
Instance? Er det ikke navnet på et MC...eller ikke selve navnet som man skriver under F8, men man bagefter skriver ind som reference?
Hvis det er det har jeg jo som jeg skrev ovenover kun to MC - og derfor 2 instances: Loadmc og holder. Jeg har kaldt de to MCs de samme navne både under MC-navn som under instance navn.
I MCet "holder" er der 5 tekstfelter .... header, newsheader etc.
Et tekstfelt kan også have et instansnavn. Det mener jeg også er tilfældet i Flash 5? Kig i panelet med egenskaber for tekstfeltet. (og husk det ER "instancename" og ikke "var") du skal kigge efter.
Jeg havde overset at teksfelterne lå inde i en holder. Derfor bliver referencen til dem: _root.holder.tekstfelt1 = header; (husk at din "holder" også skal have instansnavnet "holder"!)
Det er nok en god ide at give dine tekstfelter et andet navn end det på variablen du henter ind i dem. Jeg ville kalde dem header_txt, newsheader_txt osv. Det er ikke alene kodemæssigt meget mere sigende, det forhindrer også at man blander de to ting sammen (med underlige konsekvenser til følge).
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.