Avatar billede pumpin Nybegynder
30. marts 2002 - 22:36 Der er 19 kommentarer og
1 løsning

problem med tekst

jeg har lavet nogle knapper som åbner et MC som skal forstille "chromeless windows" (MC består af to frames en unden noget andet end stop, den anden har selve vinduet (på den måde kan jeg lave en luk funtion))
problemmet består s i at jeg vil have nået tekst ind i de vinduer men hvis jeg skriver noget i et kommer det i alle vinduerne, selv om jeg har givet alle mine vinduer forskellige instance navne.
jeg bruger de her scripts til at kalde mit MC som indholder mit vindue:
on (release) {
    tellTarget ("news") {
        gotoAndStop (2);
    }
}

Avatar billede hoejrup Nybegynder
30. marts 2002 - 22:39 #1
Har du husket at anvende forskellige variabel navne til vinduerne?

/per
Avatar billede pumpin Nybegynder
30. marts 2002 - 23:10 #2
når jeg giver den variabel navnet på min tekstbox text 1 og går ind i mit andet MC som indholder en tekstbox og giver den navnet text2 ændres alle tekstboxenes navne til text2 ?????
Avatar billede pumpin Nybegynder
30. marts 2002 - 23:14 #3
en ting til. ved ikke om det er vigtigt jeg har den her variabel, i den frame hvor tekstboxen er.
loadVariables ("text.txt", "");

for at være sikker så ligger variablen her   
movieclip med vindue frame 2
Avatar billede barklund Nybegynder
01. april 2002 - 15:46 #4
Det lyder som om, at alle dine mc'er faktisk er det samme mc, som du har lagt ind flere gange... Du skal kopiere dit mc i library og så trække de forskellige instances ind på scenen i stedet...
Avatar billede paask Nybegynder
01. april 2002 - 16:26 #5
Som Barklund siger, så har du kun ét symbol. Når du retter i det vil det altså ske i alle kopier af dette symbol, dit movieclip med det chromeless window.

Du kan også godt gøre det dynamisk istedet. Altså indsætte forskellig ekstern tekst i forskellige kopier af dit ene MC. Her er en mulighed der selvfølgelig kan tilpasses hvis du vil bibeholde navne eller lign.

Hvis du har fire instances af movieclippet med det chromeless window, så giv dem instance navnene mc1, mc2, mc3 og mc4. Tekstfeltet deri giver du variabel navnet "tekst".

Så laver du et tomt movieclip. Det eneste det skal benyttes til er, at loade teksten og placere den i tekstfelterne. Dvs. selve clippet er uden grafik, vi skal kun påføre det actions. På det controller clip skriver du dette:

onClipEvent (load) {
    loadVariables("dinTekst.txt", this);
    var hentet = "nope";
        // antal MC's du benytter
        var antalWindows = 4;
}
onClipEvent (enterFrame) {
    if (hentet == "ok") {
        for (i=1; i<=antalWindows; i++) {
            _root["mc"+i].tekst = this["tekst"+i];
        }
    }
}

Den eksterne tekstfil dinTekst.txt kan så se ud nogenlunde som dette:

tekst1=jeg er tekst 1
&tekst2=jeg er tekst 2
&tekst3=jeg er tekst 3
&tekst4=jeg er tekst 4
&hentet=ok

På denne måde har du alle de eksterne tekster i én fil, samt du kan kopiere det ene symbol uden at skulle lave flere ens MC's til dit library. Derfor kan du nøjes med at designe ét window, og forskellen i det vil udelukkende være den eksterne tekst.

Håber du kan li' idéen - ellers må du lige kommentere :0)
Avatar billede paask Nybegynder
01. april 2002 - 16:44 #6
Det kan i øvrigt også klares uden at benytte "hentet" variablen. Det ser måske blot mere logisk ud med den første metode. Men ved at benytte et "data event" sikres, at den eksterne tekst der loades kun benyttes når den er fuldstændigt hentet. Koden på controller clippet behøver så kun være dette:

onClipEvent(load) {
    loadVariables("dinTekst.txt", this);
}
onClipEvent(data) {
for (i=1; i<=4; i++) {
    _root["mc"+i].tekst = this["tekst"+i];
    }
}
Avatar billede paask Nybegynder
02. april 2002 - 17:37 #7
Har du set på det?
Avatar billede pumpin Nybegynder
07. april 2002 - 20:08 #8
undskyld jeg ikke lige har fået set på det ( har været udenbys) men hvor skal jeg ligge det der controler clip hen ??
Avatar billede paask Nybegynder
07. april 2002 - 22:46 #9
Controller clippet skal blot placeres i din _root. Det skabes kun så vi kan påføre det kode, og benytte dets event handlers.
Avatar billede pumpin Nybegynder
08. april 2002 - 06:53 #10
kan du prøve at uddybe den første metode, jeg kan ikke lige få det til at glide... skal jeg stadig bruge en loadvaraibles på mit dynamiske tekstfelt eller hvordan ????
Avatar billede paask Nybegynder
08. april 2002 - 15:54 #11
Du behøver ikke at have en loadvariables direkte i dit movieclip. Det er netop den kode jeg har insat i onClipEvent(data) koden. Der loader du teksterne eksternt alt efter hvor mange windows der er behov for.

Hvis du vil kan jeg lige lave et eksempel og sende det til dig?
Avatar billede paask Nybegynder
11. april 2002 - 16:14 #12
Har du set på det? Kan du ikke lige komme med en udmelding, for det er uden tvivl bedre jo flere spørgsmål der bliver lukket. Du burde også kunne få det til at fungere, eller?!
Avatar billede pumpin Nybegynder
11. april 2002 - 16:55 #13
jeg har set på det og undskylder meget at jeg ikke har svaret
og nej jeg kan ikke få det til at virke!
Avatar billede paask Nybegynder
11. april 2002 - 16:58 #14
Det er ok - men lad os da finde ud af det! Skal jeg ikke sende en fil til dig så du har noget at se på?
Avatar billede pumpin Nybegynder
12. april 2002 - 18:20 #15
det lyder som en cool ide paask min email er
pumpin@post.cybercity.dk
og på forhånd tak
Avatar billede paask Nybegynder
12. april 2002 - 18:49 #16
Mail er sendt - håber det kan hjælpe lidt :0)
Avatar billede paask Nybegynder
25. april 2002 - 11:11 #17
Kunne det guide dig fremad?
Avatar billede pumpin Nybegynder
26. april 2002 - 12:14 #18
der lige en ting i den line hvor der står       
_root["mc"+i].mitNavn = "window"+i;
hvad sker der her?? hvorfor er den der??  og hvad betyder i'erne ???
det er bare fordi jeg har det ikke godt med mig selv hvis jeg ikke forstår de koder jeg har brugt så hvis du gad lige at uddybe det..
  ellers mange tak for hjælpen
        //pumpin
Avatar billede pumpin Nybegynder
26. april 2002 - 12:14 #19
ellers viker det perfekt
Avatar billede paask Nybegynder
28. april 2002 - 18:31 #20
Det der sker i den linie er meget lig det i linien ovenover. Scriptet er således:

onClipEvent (data) {
    // ved brug af en for løkke kan koden ensartes, og
    // dermed udføre næsten samme kode nemt.
for (i=1; i<=4; i++) {
    // her tildeles variablerne tekst1-tekst4 til de fire
    // forskellige instances af det samme movieclip. De har
    // navnene mc1-mc4.
    _root["mc"+i].tekst = this["tekst"+i]; // *
    // Ligeledes udskriver jeg deres navn i et andet dyn.
    // tekstfelt ved navn "mitNavn"
    _root["mc"+i].mitNavn = "window"+i; // **
    }
}

I linien med * tildeler jeg som sagt de forskellige variabler til det dynamiske tekstfelt "tekst". Det er den linie der udskriver "jeg er tekst"+1-4.

På samme måde skriver jeg i linien med ** noget til et andet dynamisk tekstfelt, her ved navnet "mitNavn ". Den linie gør, at der kommer til at stå "window"+1-4 i baren i de forskellige windows.

Det der sker er, at jeg benytter en for løkke. Den benytter en iterator, en variabel værdi der kan aftage eller tiltage i størrelse. Her bliver koden udført hver gang i er mindre end eller lig med 4. Først sættes i til 0, så udføres koden første gang, så tillægges der én til variablen i med ++ operatoren - i er nu 1 og koden udføres igen. Dette gentages indtil i er 4.

Jeg forklarede lidt om i til en anden på eksperten, det kan du læse om her - http://www.eksperten.dk/spm/179326

Jeg kan sagtens følge dig i, at det er rarest at forstå de koder man benytter, så jeg håber det hjalp en smule på forståelsen :0)
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