Avatar billede theselfimages Nybegynder
28. maj 2003 - 04:11 Der er 44 kommentarer og
1 løsning

Hjælp til Actionscript (.txt loader + align)

Er der nogen der kan se problemer med dette actionscript?
Jeg kan ikke få det til at fungerer.. :(

loader = new LoadVars();
loader.onLoad = function() {
    mitTekstFelt.text = this.minTekst; // ID i tekstfilen
    mitTekstFelt.wordwrap = true;
    mitTekstFelt.autoSize = true;
    mitTekstFelt.text = this.txt;
    mitTekstFelt._y = bottom_y - mitTekstFelt._height
}
loader.load("../../mytext/03.txt", 1);


I tekstfilen:
minTekst=Bla bla bla

Hele scriptet er placeret på en keyframe i seperart layer. Tekstfeltet er placeret på et nedenstående layer.
Den samlede movie hentes i (Level 1) med LoadMovie funktion fra "Mainstage" (0)
Avatar billede technodance.dk Nybegynder
28. maj 2003 - 05:00 #1
Er det en tekst fil du vil have vist i flash


/rene/
Avatar billede _k Nybegynder
28. maj 2003 - 09:48 #2
Prøv at smide linjen "loader.load("../../mytext/03.txt", 1);" op som linje 2. - og drop også det sidste ", 1" - du behøver ikke at loade ind i levels, da du jo henter teksten ind i tekstobjektet.

Er din sti til tekstfilen rigtig? Kan du ikke bare ligge den i samme mappe som din fla/swf?

Husk også at navngive dit tekstfelt (altså "mitTekstFelt").

Linjen "mitTekstFelt.text = this.txt;" kan du slette eller udkommentere, da du allerede har sat indholdet.

Linjen "mitTekstFelt._y = bottom_y - mitTekstFelt._height" behøver du heller ikke, hvis du allerede selv har lavet dit tekstfelt (som du forresten skal lave dynamisk) og placeret det der hvor det skal være....
Avatar billede theselfimages Nybegynder
28. maj 2003 - 10:51 #3
Det oprindelige spørgsmål var dette:
Er det ikke muligt i et dynamisk tekstfelt hvor tekst trækkes ind fra en .txt fil, at aligne dette tekst til bunden af selve tekstfeltet?

Vertical alignment: Bottom (!?!)

Jeg fatter intet af det.. nu ser mit forsøg sådan her ud:

loader = new LoadVars();
loader.load("../../mytext/03.txt");
var bottom_y = 100;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.txt;
    tekstFelt._y = bottom_y - tekstFelt._height
}

Men hvor defineres hvor den skal læse fra i min .txt fil?
I tekstfilen står: TEXT=

Referer evt. til dette:
http://www.eksperten.dk/spm/356447
Avatar billede _k Nybegynder
28. maj 2003 - 11:12 #4
Prøv at ændre linjen "tekstFelt.text = this.txt;" til "tekstFelt.text = this.TEXT;"
Avatar billede theselfimages Nybegynder
28. maj 2003 - 11:25 #5
Får bare en error opening URL selv SWF fil og 03.txt nu ligger i samme mappe?

loader = new LoadVars();
loader.load("03.txt");
var bottom_y = 100;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.TEXT;
    tekstFelt._y = bottom_y - tekstFelt._height
}
Avatar billede _k Nybegynder
28. maj 2003 - 11:47 #6
Hedder 03.txt "03.TXT" på din harddisk? Stierne til tekstdokumenter osv. er case sensitive..... For fejlen ligger helt sikkert i kaldet af dokumentet, hvis du får en error opening url....
Avatar billede theselfimages Nybegynder
28. maj 2003 - 12:17 #7
Som Barklund skriver i min reference, så må meningen vel være at denne load funktion skal kobles med align scriptet.. men lige hvordan?
Det er IKKE grundet case sensitive i hvert fald.

loader = new LoadVars();
loader.onLoad = function() {
    tekstFelt.text = this.TEXT;
}
loader.load("03.txt");
}

Med dette:

var bottom_y = 100;
minTekst.onLoad = function() {
    mitTekstFelt.wordwrap = true;
    mitTekstFelt.autoSize = true;
    mitTekstFelt.text = this.txt;
    mitTekstFelt._y = bottom_y - mitTekstFelt._height
}

Så sætter du bare ønsket bundværdi i bottom_y...


(Som Barklund skriver:)
Hvor "minTekst" er LoadVars-objekt og erstatter den nuværende onLoad()... eller komplementerer.
Avatar billede theselfimages Nybegynder
28. maj 2003 - 12:19 #8
Jeg har virkelig brug for en tutorial på dette :)
Avatar billede _k Nybegynder
28. maj 2003 - 12:57 #9
Hvis vi starter forfra, kan du så overhovedet få loadet teksten ind, og få den vist i dit tekstfelt?
Avatar billede theselfimages Nybegynder
28. maj 2003 - 14:05 #10
Starter forfra?
Nej.. jeg har slet ikke kunnet få loadet noget tekst med Barklunds load.funktion der specielt er skrevet til MX. Aner ikke hvorfor, men den
viser bare ingen tekst i modsætning til dette script der fint virker
(skrevet til Flash 4)
http://www.virtual-fx.net/tutorials/html/loadtextfile.htm
Avatar billede _k Nybegynder
28. maj 2003 - 14:42 #11
Ja, loadVariables er ikke så svært at gå til som loadVars objektet - hvilket til gengæld er klart det bedste, når man vil manipulere med inputtet.

Hvis du virkelig vil forstå det, så læs den her:
http://www.actionscripts.org/tutorials/beginner/loadVariables_and_loadVars/index.shtml

Ellers, sæt den nedenstående kode ind - den virker!

loader = new LoadVars();
loader.load("03.txt");
loader.onLoad = function() {
  if (success){
    trace("der er hul igennem");
    navnetPaaDitTekstFelt.text = "Juhuuu, det virker");
  }
  else {
    trace("der opstod problemer!")
    navnetPaaDitTekstFelt.text = "Æv, bæv, buhh");
}
}
Avatar billede theselfimages Nybegynder
28. maj 2003 - 14:50 #12
Øhh! nej! det gør den vist ikke:

Scene=Scene 1, Layer=loadtext, Frame=5: Line 6: ';' expected
        navnetPaaDitTekstFelt.text = "Juhuuu, det virker");

Scene=Scene 1, Layer=loadtext, Frame=5: Line 8: 'else' encountered without matching 'if'
      else {

Scene=Scene 1, Layer=loadtext, Frame=5: Line 10: ';' expected
        navnetPaaDitTekstFelt.text = "Æv, bæv, buhh");

Scene=Scene 1, Layer=loadtext, Frame=5: Line 11: Unexpected '}' encountered
    }
Avatar billede paask Nybegynder
28. maj 2003 - 14:52 #13
Bryder lige ind :)

Du skal bare fjerne slutparenteserne fra sætningerne sådan:
navnetPaaDitTekstFelt.text = "Juhuuu, det virker";
navnetPaaDitTekstFelt.text = "Æv, bæv, buhh";

Desuden burde dette nu virke finnok ?!

loader = new LoadVars();
loader.load("03.txt");
var bottom_y = 100;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.txt;
    tekstFelt._y = bottom_y-tekstFelt._height;
};
Avatar billede paask Nybegynder
28. maj 2003 - 14:54 #14
... og en lille ting _k, der skal lige 'success' med som parameter i onLoad funktionen:

loader.onLoad = function(success) {
  if (success){
  ...

:0)
Avatar billede theselfimages Nybegynder
28. maj 2003 - 14:57 #15
Vil du vise det samlet .. venligst?
Avatar billede paask Nybegynder
28. maj 2003 - 15:13 #16
Ja da :)

Først _k's eksempel der burde virke fint uden slutparanteser i sætningerne og med extra parameter:

//
loader = new LoadVars();
loader.load("03.txt");
loader.onLoad = function(success) {
    if (success) {
        trace("der er hul igennem");
        tekstFelt.text = "Juhuuu, det virker";
    } else {
        trace("der opstod problemer!");
        tekstFelt.text = "Æv, bæv, buhh";
    }
};
//

... og så det script Barklund vist har stykket sammen:
//
loader = new LoadVars();
loader.load("03.txt");
var bottom_y = 100;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.txt;
    tekstFelt._y = bottom_y-tekstFelt._height;
};
//

begge burde virke fint - eller rettere virker fint - hver for sig :)
Avatar billede paask Nybegynder
28. maj 2003 - 15:19 #17
I øvrigt skal teksten i den eksterne tekstfil se nogenlunde sådan ud:

&txt=Ekstern tekst er her&

- Det er altid godt at starte og slutte med & der opdeler variablerne fra .txt filen - med mindre du har flere variabler hvor et & imellem er nok...
Avatar billede theselfimages Nybegynder
28. maj 2003 - 15:19 #18
Hmm.. det er det sidste script jeg er interesseret i.. men jeg forstår det ikke. Når jeg sætter det som kode på en keyframe og tester det få jeg denne:
Error opening URL "file:///D|/03.txt"

FLA, SWF og 03.txt fil ligger samme sted. Men hvad er det er i scriptet angiver hvad i tekstfilen der skal læses?
I tekstfilen står "text" med lad os kalde den "mytext" for ikke at blande begreberne sammen.
Avatar billede paask Nybegynder
28. maj 2003 - 15:23 #19
Er du sikker på du eksporterer til MX ? Ellers burde du ingen error få ?!

Hvis du kalder variablen i tekstfilen for mytext skal den altså se således ud:

&mytext=Ekstern tekst er her&

og scriptet i Flash:

loader = new LoadVars();
loader.load("03.txt");
var bottom_y = 100;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.mytext;
    tekstFelt._y = bottom_y-tekstFelt._height;
};
Avatar billede theselfimages Nybegynder
28. maj 2003 - 15:38 #20
Paask .. det er helt gak! Har gjort nøjagtig som du skriver... men får den error stadig. Må jeg prøve sende dig Fla filen?
Avatar billede paask Nybegynder
28. maj 2003 - 15:46 #21
Tja, det kan du vel godt... måske jeg kan se hvad der er galt :)

kaare@imma.dk

Send hellere både .fla og .txt filerne :0)
Avatar billede paask Nybegynder
28. maj 2003 - 16:03 #22
Ok - der er umiddelbart to ret væsentlige fejl her...

For det første loader du ikke med det korrekte navn. Din tekst fil hedder 'text03.txt' men du loader kun '03.txt'.

Dvs. enten ændrer du navnet på tekstfilen til 03.txt eller også skal du ændre i scriptet til loader.load("text03.txt");

Det var grunden til du fik en error ved at loade.

Derudover har du fået blandet instance og variabel navnene sammen... I MX har tekstfelter både mulighed for at få variabelnavn og et instancenavn. Det første refererer til indholdet af tekstfeltet, det andet er navnet på selve objektet som er hele tekstfeltet.

Derfor skal du fjerne 'tekstFelt' fra variabel feltet i property inspectoren til instancename feltet (til venstre). Så virker alt godt :)

Jeg sender lige en mail med .fla der ser ud som jeg beskriver...
Avatar billede theselfimages Nybegynder
28. maj 2003 - 16:10 #23
Så er jeg da også en FED spadser ... :)
Sorry ad helvede til. Jeg laver eksamensprokekt ved siden af dette.
Lidt presset... må ha' overset detaljerne.

YEPSI.. det virker nu.. takker!
Vi du venligst poste et svar?
Avatar billede theselfimages Nybegynder
28. maj 2003 - 16:12 #24
Og hvis du så lige vil udfordres.. kan du jo altid se på denne:
http://www.eksperten.dk/spm/345281
Avatar billede paask Nybegynder
28. maj 2003 - 16:18 #25
Hep - det var da herligt det virker nu :)

_k - håber ikke du føler dig trådt over tæerne, vi kan sagtens spise et par pts. hver :0)

vigtigst af alt er jo spørgsmålet blev besvaret, right?!
Avatar billede paask Nybegynder
28. maj 2003 - 16:19 #26
svar :)
Avatar billede paask Nybegynder
28. maj 2003 - 16:20 #27
Lidt for meget at læse i det andet spm. til nu theselfimages :) Måske en anden dag...
Avatar billede theselfimages Nybegynder
28. maj 2003 - 16:24 #28
Hehe! ja! den er lidt lang og har været længe undervejs.. men alle er jo velkomne til at byde sig til med hjælp og guldkorn. Kig på den, hvis og når du får tid og lyst.

Tusind Tak for denne gang.. venter lige og ser om _K poster et svar også.
Avatar billede theselfimages Nybegynder
28. maj 2003 - 17:09 #29
Der er lige en enkelt lille ting.
Den fadebox funktion jeg har indlagt i FLA filen opfører sig lidt underligt.
(Siden testes fra nettet)
Når jeg klikker linket går der et stykke tid før teksten kommer frem, men som et glimt uden at fade. Men anden gang jeg klikker linket fader teksten fint nok frem - som om den kræves at skulle være preloadet.. eller?
Avatar billede theselfimages Nybegynder
28. maj 2003 - 17:10 #30
Kan der evt. med actionscript laves en fade/alpha funktion der fader teksten frem?
Avatar billede paask Nybegynder
28. maj 2003 - 17:19 #31
Hey igen,

Grunden til tekasten lige vises er nok fordi du ikke har embedded fonten i tekstfeltet. Hvis du gør det kan du også scripte dig ud af faden og helt droppe dit 'fade' lag sådan :

loader = new LoadVars();
loader.load("text03.txt");
var bottom_y = 250;
var speed = 5;
tekstFelt._alpha = 0;
loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.mytext;
    tekstFelt._y = bottom_y-tekstFelt._height;
};
this.onEnterFrame = function() {
    this.tekstFelt._alpha += speed;
    if (this.tekstFelt._alpha>=100) {
        delete this.onEnterFrame;
    }
};

mvh
paask
Avatar billede paask Nybegynder
28. maj 2003 - 17:23 #32
Så mister du selvføleglig lidt af idéen, da du bruger verdana i lille størrelse og nok helst vil bevare den cripsness der kommer af ikke at embedde fonten...

Alternativt kan du scripte dig ud af det med en pixelfont...
Avatar billede paask Nybegynder
28. maj 2003 - 17:24 #33
Well - smutter for nu og er først tilbage igen fredag......
Avatar billede theselfimages Nybegynder
28. maj 2003 - 17:28 #34
OK! det virker fint.. prøver med noget Pixelfont
Avatar billede theselfimages Nybegynder
29. maj 2003 - 02:51 #35
Hmm.. det virker super godt med dit fade script, men jeg kan på ingen måde undgå at teksten blir blured når jeg embedder fonten. Også selv om jeg har forsøgt med adskillige pixel fonte.

Jeg er klar over at tekst ikke må placeres på X/Y decimaler, men hvordan ved jeg nøjagtigt hvor teksen placeres i tekstfeltet når dette er dynamisk og scalere sig selv? Selve tekstfeltet er placeret på lige koordinator.
Avatar billede paask Nybegynder
30. maj 2003 - 08:22 #36
Hej igen,

Jeg har lige forsøgt med en pixelfont, og det ser ud til at virke perfekt!? Selve tekstfeltet bliver jo ikke skaleret, det flyttes til ny _y position og tilpasser sig tekstens størrelse - det er det eneste...

Er du sikker på du bruger hele top-left pixel koordinater samt rigtig størrelse af pixelfonten?

Alternativt kan du sikres at det altid er 100% sikkert fastsat ved at udvidde lidt i onLoad funktionen således:

loader.onLoad = function() {
    tekstFelt.wordwrap = true;
    tekstFelt.autoSize = true;
    tekstFelt.text = this.mytext;
    tekstFelt._y = bottom_y-tekstFelt._height;
    var x = tekstFelt._x;
    var y = tekstFelt._y;
    tekstFelt._x = Math.round(x);
    tekstFelt._y = Math.round(y);
};

Det burde sikre fonten bliver vist som den skal...
Avatar billede theselfimages Nybegynder
30. maj 2003 - 08:34 #37
Hmm.. hvilken pixil font har du brugt?
Jeg syntes nu stadig at det blurer - også med din script add-on. Det står ikke knivskarpt i hvert fald.
Format options står alle sat til 0 - tekstFeltes placering er X:615 Y:10 (det er hvad du mener med top-left pixel koordinator?)
Avatar billede paask Nybegynder
30. maj 2003 - 08:43 #38
Jeg har brugt fonten FFF Progress...

Teksten burde stå helt perfekt - det eneste jeg kan forestille mig er, at du ex bruger fontstørrelse 9 og fonten er beregnet til 8 eller lignende... andet kan jeg ikke sige - det ser smukt ud her!?

Prøv evt at lave et helt nyt tekstfelt og forsøg med fontstørrelserne.

Går til møde nu og er først tilbage senere.
Avatar billede theselfimages Nybegynder
30. maj 2003 - 11:13 #39
Du er da for snild! :)

Det var tekskFeltet der var problemet. Jeg lavede blot et nyt tekstFelt så stod teksten skarpt. Jeg kender godt til brugen af pixelfonts og deres faste pkt. str. Men Flash er for mærkeligt og skrøbeligt.
Håber at en Flash 7 vil være i stand til at styrer skrift langt bedre.

Anyway.. Tusind tak for din tålmodighed og hjælp.

Lars
Avatar billede paask Nybegynder
30. maj 2003 - 11:49 #40
Hey,

Det er da godt alt virker nu :)

Flash er overfølsomt med pixelfonte - det kan virkelig være en pain til tider - så forhåbenlig de retter lidt i det til ny udgave.

Happy Flashin' :)
Avatar billede _k Nybegynder
30. maj 2003 - 11:55 #41
Jeg føler mig skam ikke trådt over tæerne, rart at du tog over paask :o)
Avatar billede theselfimages Nybegynder
02. juni 2003 - 20:06 #42
Kan det passe at jeg IKKE kan skrive Æ,Ø,Å ?
Hverken med Verdana eller pixelfont?
Avatar billede paask Nybegynder
03. juni 2003 - 09:48 #43
Hey igen,

Det kan desværre meget vel passe - for at løse det har du to løsninger, en nem men usmart og den sikre men bvesværlige.

Den nemme er at skrive System.useCodePage = true;
Så kan du straks igen se æ,ø,å.

Ved den løsning er der bare en del drawbacks. Moock omtaler det her: http://moock.org/asdg/technotes/againstUseCodePage/

Det handler mest om, at man istedet bør Uni-code sine eksterne tekstfelter. En mere besværlig men sikker løsning.

Kun når følgende to påstande er sande bør man ændre codePage:

"
1. Non-Unicode text is loaded into the Flash Player, from either an external text file or a server script.
2. The external text happens to be encoded with the same code page that is currently set on the end-user operating system running the Flash Player.
"

Umiddelbart giver det positivt resultat, dog KUN hvis punkt 2 er helt 100 % sikker - ellers kan du få problemer. Det handler mest om hvem din målgruppe er og hvor seriøs en løsning du vil lave.

Hvis det er professionelt vil jeg nok foreslå at URL encode skidtet, men det kan du jo gøre med et enkelt tryk i et eller andet html program som ex Macromedia Homesite.

Håber det hjalp lidt :)

Kåre
Avatar billede theselfimages Nybegynder
03. juni 2003 - 11:13 #44
Takker... prøver at rode lidt med det.
Avatar billede theselfimages Nybegynder
30. december 2003 - 03:44 #45
Det virker med Æ,Ø,Å ... men jeg kan ikke se @ eller + tegn.
Hvorfor ik'?
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