Avatar billede mnt82 Nybegynder
21. september 2004 - 22:09 Der er 66 kommentarer

Variabel er "undefined"

Hej,

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.
Avatar billede thesurfer Nybegynder
21. september 2004 - 22:17 #1
Prøv med:

var tekst = "Her er teksten!", "field";

dvs, "var" foran navnet på variablen..
Avatar billede mnt82 Nybegynder
21. september 2004 - 22:18 #2
Så kommer den et Output om at "Identifier expected" i line 4.
Avatar billede thesurfer Nybegynder
21. september 2004 - 22:24 #3
Jeg programmerer ikke i flash..
Men måske kan du bruge det her: http://actionscript-toolbox.com/flashmx_variables.php
Avatar billede rohaje Nybegynder
21. september 2004 - 22:25 #4
"bla bla","bla" ? hvad laver det komma der ?
Avatar billede rohaje Nybegynder
21. september 2004 - 22:29 #5
start med at sætte field=""; í 2.0 skal variabler defineres for ikke at være undefined
Avatar billede mnt82 Nybegynder
21. september 2004 - 22:32 #6
Det første er den tekst der bliver vist i mit tekst-felt, "field" er navnet på feltet..
Avatar billede mnt82 Nybegynder
21. september 2004 - 22:36 #7
Hey rohaje du er en skat. Det virker, men hvorfor skal 2.0 være så besværligt??
Avatar billede rohaje Nybegynder
21. september 2004 - 22:36 #8
ellers brug field.text istedet,, og giv instance navn til text feltet istedet for variable
Avatar billede rohaje Nybegynder
21. september 2004 - 22:38 #9
tænk den anden vej det kan også være anvendeligt :)
Avatar billede rohaje Nybegynder
21. september 2004 - 22:41 #10
Men helt seriøst hvad er ide'en i ,"field" i variablen tekst ?
Avatar billede mnt82 Nybegynder
21. september 2004 - 22:43 #11
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?
Avatar billede thesurfer Nybegynder
21. september 2004 - 22:50 #12
Jeg hopper ud af dette spm..
Hvis I har en besked til mig, skriv en henvisning her: http://www.eksperten.dk/spm/501654
Avatar billede rohaje Nybegynder
21. september 2004 - 22:51 #13
stop();
i = 0;
a=0;

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++;
   
       
};
Avatar billede rohaje Nybegynder
21. september 2004 - 22:52 #14
tekst-feltet skal have instance navn "field" og ingen var
Avatar billede rohaje Nybegynder
21. september 2004 - 22:56 #15
drop det der textArr=tekst.split("*"); og
trace(split);
rester af forsøg 1



stop();
i = 0;
a=0;

tekst = "Her er teksten!*her er en ny linie ** her er dobbelt skift";

field.text="";
_root.onEnterFrame = function(){
    if( tekst.charAt(i)=="*"){
        field.text+=newline;
    }else{
    field.text += tekst.charAt(i);
    }
    i++;
   
       
};
Avatar billede rohaje Nybegynder
21. september 2004 - 23:01 #16
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;
    }
       
    i++;
};
Avatar billede mnt82 Nybegynder
21. september 2004 - 23:02 #17
OKay! Men hvis jeg sætter din kode inde, kommer der en Output med "Undefined"
Avatar billede rohaje Nybegynder
21. september 2004 - 23:05 #18
har givet tekstfeltet instencenavn "field" istedet for var? og slettet "field" i var?
Avatar billede rohaje Nybegynder
21. september 2004 - 23:06 #19
det virker hos mig
Avatar billede rohaje Nybegynder
21. september 2004 - 23:07 #20
a=0 skal heller ikke bruges også en rest fra forsøg 1
Avatar billede mnt82 Nybegynder
21. september 2004 - 23:11 #21
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
Avatar billede mnt82 Nybegynder
21. september 2004 - 23:12 #22
Jeg prøvede med text = loadVariables("external.txt");
Avatar billede rohaje Nybegynder
21. september 2004 - 23:23 #23
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");
Avatar billede rohaje Nybegynder
21. september 2004 - 23:24 #24
tekstfilen skal se sådan ud:

tekst =Her er teksten!*her er en ny linie ** her er dobbelt skift&dummy=0

saves som hvis du har brug for æøå utf-8
Avatar billede rohaje Nybegynder
21. september 2004 - 23:25 #25
håber det virker ellers er jeg tilbage i morgen,, godnat og sov godt

mvh

Robert
Avatar billede mnt82 Nybegynder
21. september 2004 - 23:56 #26
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! :-)
Avatar billede rohaje Nybegynder
22. september 2004 - 09:54 #27
ok smid din ny-bikset her kode så kigger jeg gerne på det
Avatar billede rohaje Nybegynder
22. september 2004 - 10:20 #28
her ligger en med tekstfil og fla der virker >> www.rohaje.dk/skrive.zip

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
Avatar billede rohaje Nybegynder
23. september 2004 - 12:39 #29
fik du det til at virke ?
Avatar billede mnt82 Nybegynder
23. september 2004 - 23:35 #30
Ved det ikke..

Lige da jeg hentede din zip-fil kom der en eller anden sindssyg virus eller noget som smadrede computeren, indtil jeg fik slettet dine filer igen.

Var det med vilje?
Avatar billede rohaje Nybegynder
24. september 2004 - 00:08 #31
nej sku- var der virus i zip - filen ???
Avatar billede rohaje Nybegynder
24. september 2004 - 00:13 #32
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" ?
Avatar billede rohaje Nybegynder
24. september 2004 - 00:18 #33
det er for nederen hvis jeg har,, har lige oprettet et spørgsmål for at få det afklaret

http://www.eksperten.dk/spm/543147
Avatar billede johnstigers Seniormester
24. september 2004 - 08:02 #34
mnt82> Der var ikke virus i filen - en undskyldning er vel på sinn plads ;)
Avatar billede rohaje Nybegynder
24. september 2004 - 09:52 #35
Jeg syndes det er helt ok af mnt82, at spørge,som han gør, ville også selv blive lidt mistænkelig, hvis jeg havde været ude for det samme forløb..

Det er jo i en god tone-
Avatar billede suppenudel Nybegynder
24. september 2004 - 09:55 #36
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.
Avatar billede suppenudel Nybegynder
24. september 2004 - 09:56 #37
Men ellers tak Rohaje, du har været en stor hjælp. Jeg vil da lige prøve dit eksempel igen :-) Hvordan smider jeg point af til dig?
Avatar billede rohaje Nybegynder
24. september 2004 - 10:00 #38
suppenudel er du mnt82,, eller er du en anden der også har problemer med filen ?
Avatar billede suppenudel Nybegynder
24. september 2004 - 10:06 #39
jep, jeg oprettede mnt82 fordi jeg troede den anden var slettet. Er ikke ude efter point, men kun efter hjælp :-)
Avatar billede rohaje Nybegynder
24. september 2004 - 10:12 #40
pyh-ha, det var godt, fik lige sved på panden, gad vide hvad der er gået galt,,

vent med point til det virker
Avatar billede suppenudel Nybegynder
24. september 2004 - 10:15 #41
hehe.. ingen grund til. Jeg tager chancen og henter din fil igen.. :-)
Avatar billede rohaje Nybegynder
24. september 2004 - 10:15 #42
op på hesten igen :)
Avatar billede suppenudel Nybegynder
24. september 2004 - 10:19 #43
Og der er no problemo! Ellers et fint eksempel, du er da ikke så lidt genial! :-D
Avatar billede suppenudel Nybegynder
24. september 2004 - 10:22 #44
Men jeg ved ikke hvad der gik galt der den anden dag, det var da godt nok et sammentræf at den lige skulle gå amok da jeg hentede den.. men sorry.
Avatar billede rohaje Nybegynder
24. september 2004 - 10:23 #45
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();

og slet lyd_mc'erne
Avatar billede rohaje Nybegynder
24. september 2004 - 10:24 #46
Ikke noget at undskylde, glad for at det er opklaret
Avatar billede suppenudel Nybegynder
24. september 2004 - 10:32 #47
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:

loadVariables("Biografi.txt", "");
mytext.scroll=x
stop();

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..
Avatar billede rohaje Nybegynder
24. september 2004 - 10:45 #48
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.

hvis biografi.txt skal køres med skrivemaskinen

er koden

myVars.load("biografi.txt");

håber det giver mening


 



se hjælpen udner TextField class
Avatar billede rohaje Nybegynder
24. september 2004 - 10:47 #49
i biografi.txt skal "mytext" ændres til "tekst" hvis skrivemaskinen skal virke min kode
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:21 #50
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");
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:23 #51
Der kommer ingen output-fejl, men til gengæld kommer der heller ikke noget i mit tekst-felt..
Avatar billede rohaje Nybegynder
24. september 2004 - 11:26 #52
vil du loade tekst ind uden skrivemaskine-effect eller vil loade  biografi.txt ind i skrivemaskinen?
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:28 #53
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
Avatar billede rohaje Nybegynder
24. september 2004 - 11:28 #54
var myEnAndenVars = new LoadVars();
myEnAndenVars.onLoad = function(ok) {
    if (ok) {
        trace("loadet=succes");
       
        field.text = = myVars.tekst;
field.scroll=x;
     
    }
};
myEnAndenVars.load("Biografi.txt");
uden skrive maskine
Avatar billede rohaje Nybegynder
24. september 2004 - 11:29 #55
"uden skrive maskine" skulle ha' været over skrift og er ikke en del af koden
Avatar billede rohaje Nybegynder
24. september 2004 - 11:31 #56
hov.. der skal ikke være to "="

ikke:
field.text = = myVars.tekst;

men sådan:
field.text = myVars.tekst;
Avatar billede rohaje Nybegynder
24. september 2004 - 11:32 #57
det køre rigtigt :
ikke:
field.text = myVars.tekst;

men:
field.text = myEnAndenVars.tekst;
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:32 #58
hahah nej :-) For skrivemaskinen har jeg skam også brugt i mit projekt, og vil også bruge den, så det har bestemt ikke været spild!
Avatar billede rohaje Nybegynder
24. september 2004 - 11:34 #59
var myEnAndenVars = new LoadVars();
myEnAndenVars.onLoad = function(ok) {
    if (ok) {
        trace("loadet=succes"); 
        field.text = myEnAndenVars.tekst;
        field.scroll = x;
     
    }
};
myEnAndenVars.load("Biografi.txt");
Avatar billede rohaje Nybegynder
24. september 2004 - 11:35 #60
linie skift havde jeg glæmt
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:47 #61
yes, nu virker det, men der er stadig ikke linieskift
Avatar billede rohaje Nybegynder
24. september 2004 - 11:48 #62
var myEnAndenVars = new LoadVars();
myEnAndenVars.onLoad = function(ok) {
    if (ok) {
        trace("loadet=succes");
        udenSkrivMedScroll(myEnAndenVars.tekst);
    }
};
function udenSkrivMedScroll(txt) {
    textArray = txt.split("*");
    field.text = "";
    for (n=0; n<textArray.length; n++) {
        field.text += textArray[n]+newline;
    }
    field.scroll = x;
}
myEnAndenVars.load("Biografi.txt");
Avatar billede rohaje Nybegynder
24. september 2004 - 11:52 #63
nu har du to du kan bruge

hvis du skal loade noget skrivemaskine skriver du

myVars.load("enEllerAndenTekstFil.txt");

hvis du skal med scroll uden skrivemaskine

myEnAndenVars.load("enEllerAndenTekstFil.txt");


koderne kan du putte på knapper eller andet f.eks en knap i en menu

on(release){
myEnAndenVars.load("enEllerAndenTekstFil.txt");
}
Avatar billede suppenudel Nybegynder
24. september 2004 - 11:59 #64
YES! Så kan man da vist ikke sige andet end at det virker :-D
Avatar billede suppenudel Nybegynder
24. september 2004 - 12:00 #65
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 :-)
Avatar billede rohaje Nybegynder
24. september 2004 - 12:01 #66
jeg skynder mig at smide et svar, inden der går noget galt ;)

glad for enden blev god
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester