Jeg har her en tekst der skal loades ind i et dynamisk tekst-felt, således at teksten kommer som bliver den skrevet på en maskine. Koden ser her:
stop(); i = 0;
tekst = "Her er teksten!", "field";
_root.onEnterFrame = function(){ field += tekst.charAt(i); i++; };
Problemet er, at den bliver loadet fint nok ind som den skal, men der kommer i tekstfeltet til at stå: "undefinedHer er teksten" - Hvordan kan det være? Det er i actionScript 2.0 og det skal siges at koden befinder sig i et MC der ligger på timelinen.
Ja, jeg kan se det også virker uden, men jeg troede den skulle have en slags target efter sig.. Hvordan kan jeg lave linieskift i min tekst på denne her måde?
tekst = "Her er teksten!*her er en ny linie ** her er dobbelt skift"; textArr=tekst.split("*"); trace(split); field.text=""; _root.onEnterFrame = function(){ if( tekst.charAt(i)=="*"){ field.text+=newline; }else{ field.text += tekst.charAt(i); } i++;
og til sidst skulle du måske lige stoppe den når der ikke er mere tekst :
stop(); i = 0; a = 0; tekst = "Her er teksten!*her er en ny linie ** her er dobbelt skift"; field.text = ""; _root.onEnterFrame = function() { trace("act"); if (tekst.charAt(i) == "*") { field.text += newline; } else { field.text += tekst.charAt(i); } if(i>tekst.length){ delete _root.onEnterFrame; }
Ah, på denne måde! Ja nu virker det også her.. :-) Var det egentlig ikke nemmere bare at hente teksten ud af en .txt-fil? Jeg har prøvet, men syntes ikke de lykkedes med skrivemaskine-effekten
var myVars = new LoadVars(); myVars.onLoad = function(ok) { if (ok) { trace("loadet=succes"); tekst = myVars.tekst; field.text = ""; _root.onEnterFrame = skriv; } };
function skriv() { //lidt random så det ligner at det er en der skriver tal = random(100); if (tal<50) { if (tekst.charAt(i) == "*") { _root.linieskiftlyd_mc.play(); //mc med linieskiftlyd : stop() i første frame lyden i frame to field.text += newline; } else { field.text += tekst.charAt(i); _root.skrivlyd_mc.play(); //mc med skrivelyd : stop() i første frame lyden i frame to } if (i>tekst.length) { delete _root.onEnterFrame; trace("teksten er skrevet"); } i++; } } myVars.load("mintekstfil.txt");
Okay, den var lidt vild den sidste her, men cool! :-) Jeg har bikset lidt med den, men kan ikke helt få den til at virke, den laver en masse "undefined"-fejl.. Men du er meget velkommen til at skrive tilbage igen! :-)
der var vist lige et par fejl i det igår, var vist lidt træt.
//flash
var myVars = new LoadVars(); myVars.onLoad = function(ok) { if (ok) { trace("loadet=succes"); tekst = myVars.tekst; trace(this); trace(tekst); field.text = ""; forsinket_bogstav_linieSkift = ""; i = 0; _root.onEnterFrame = skriv; } }; function skriv() { //lidt random så det ligner at det er en der skriver field.text += forsinket_bogstav_linieSkift; if (i>tekst.length) { delete _root.onEnterFrame; trace("teksten er skrevet"); } tal = random(100); if (tal<50) { if (tekst.charAt(i) == "*") { _root.linieskiftlyd_mc.play(); //mc med linieskiftlyd : stop() i første frame lyden i frame to forsinket_bogstav_linieSkift = newline; } else { forsinket_bogstav_linieSkift = tekst.charAt(i); _root.skrivlyd_mc.play(); //mc med skrivelyd : stop() i første frame lyden i frame to } i++; } else { forsinket_bogstav_linieSkift = ""; } } myVars.load("mintekstfil.txt");
//flash slut
tekst-fil:
tekst=Her er teksten!*her er en ny linie **her er dobbelt skift&dummy=0
jeg har anti-vir sat til hele tiden og den har ikke fundet noget hos mig,, prøvede lige at downloade zippen selv og fik ingen virus,, er du sikker på at det er min fil der "syg" ?
Ja, ikke at jeg tror det var bevidst, men lige da jeg hentede den, begyndte alt hvad der blev åbnet, mapper eller antivirus-program at åbne 500 gange eller sådan noget, og blev ved, sådan at computeren gik helt i sort krak til sidst. Kun da jeg slettede skrive.zip holdt det op igen.
Det var godt jeg ånder lettet op,, du skal nok udskifte lydene med noget ordeligt,, hvis du skal have lyd på (havde ikke lige noget der passede helt), ellers udkommenter _root.linieskiftlyd_mc.play(); og _root.skrivlyd_mc.play();
jep okay, men hvad er forskellen egentlig på om jeg loader det ind i et instance-felt eller et var-felt? For den jeg ville have effekten med "*" som linieskift ind i og evt. skrivemaskine effekten, var et felt med scroll, hvor jeg i var-feltet har skrevet "mytext" og ikke har andre actions tilknyttet end:
Men her laver den så ufrivillige dobbelte linieskift i teksten, og var derfor smart at styre det med dine "*". Men når jeg kombinerer de to koder går det vist galt..
ja,, var-feltet er den gamle måde,, med instance navne kan du styre teksten på alle mulige måder (htmlText, lave link i teksterne, textColor, ændre skriftType og meget mere)
du kan ændre den gamle kode og bruge instance-navnet i stedet,,
hvis du har en variable i "biografi.txt" der hedder mytext skal koden se sådan ud(uden skrivemaskine) loadVariables("Biografi.txt", ""); field.text=mytext; du skal bare være sikker på at Biografi.txt er loadet inden du sætter texten til mytext
det er derfor godt at bruge LoadVars(); istedet se i eksemplet hvordan den starter tingene op efter de er loadet.
Okay har forsøgt lidt, altså ved at bruge instance-feltet, hvori jeg har skrevet: "field" I min biografi.txt er starten "tekst="
Det jeg kom frem til ser således ud: (ved godt det måske ser lidt lost ud!)
myVars.load("Biografi.txt"); field.text=tekst;
field.scroll=x
var myVars = new LoadVars(); myVars.onLoad = function(ok) { if (ok) { trace("loadet=succes"); tekst = myVars.tekst; trace(this); trace(tekst); field.text = ""; forsinket_bogstav_linieSkift = ""; i = 0; _root.onEnterFrame = skriv; } }; function skriv() { //lidt random så det ligner at det er en der skriver field.text += forsinket_bogstav_linieSkift; if (i>tekst.length) { delete _root.onEnterFrame; trace("teksten er skrevet"); } tal = random(100); if (tal<50) { if (tekst.charAt(i) == "*") { _root.linieskiftlyd_mc.play(); //mc med linieskiftlyd : stop() i første frame lyden i frame to forsinket_bogstav_linieSkift = newline; //field.text += newline; } else { forsinket_bogstav_linieSkift = tekst.charAt(i); //field.text += tekst.charAt(i); _root.skrivlyd_mc.play(); //mc med skrivelyd : stop() i første frame lyden i frame to } i++; } else { forsinket_bogstav_linieSkift = ""; } } //myVars.load("mintekstfil.txt");
Jeg vil gerne loade txt-filen ind i mit scroll-felt, men sådan at når jeg i min txt-fil skriver "*" kommer der linieskift. Skrivemaskinen behøver ikke være med i denne del
Du skal i hvert fald have tusind tak for hjælpen, men jeg vender vist frygteligt tilbage med nye probs, men regner ikke med at det bliver lige med det samme :-)
jeg skynder mig at smide et svar, inden der går noget galt ;)
glad for enden blev god
Synes godt om
Ny brugerNybegynder
Din løsning...
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.