18. november 2004 - 15:47
Der er
17 kommentarer og 1 løsning
Dynamisk sti
Jeg har en variabel _root.sti="side.notat1.myText" Hvordan kan jeg bruge den sådan -> Tekst=_root[_root.sti].text; Funktionen tillader ikke at der er "." i klammerne! Hvad gør man? M.v.h. Joch
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
18. november 2004 - 15:54
#1
stien er vel ikke særlig dynamisk så du tiltaler den _root. Anyway: Tekst=_root[_root[sti]].text;
18. november 2004 - 15:56
#2
hvorfor indeholder variablen en streng? hvis nu din variable var _root.sti = side.notat1.myText; så kunne du jo bare skrive Text = _root.sti.text; Ask-M
18. november 2004 - 16:08
#3
nikolajdu - Det er også lavet som et eksempel :D Den større sammenhæng ville være for besværlig at forklare! Men... Hos mig virker dit eksempel ikke :( Skriver jeg -> trace(_root.side.notat1.myText.text); Så får jeg mit output. Skriver jeg -> trace(_root[_root[sti]].text); så får jeg -> undefined side.notat1.myText
18. november 2004 - 16:08
#4
måske : Tekst=_root[eval(_root[sti])].text;
18. november 2004 - 16:09
#5
glem sidste linie... den er kommet med ved en fejl (side.notat1.myText)
18. november 2004 - 16:09
#6
arg... Tekst=_root[_root.sti].text; eller Tekst=_root[eval(_root.sti.)].text;
18. november 2004 - 16:17
#7
Noap - Den køber den bare ikke, når der er en undermappe :( Det er punktummet der skaber problemet...
18. november 2004 - 16:19
#8
hov der skal ikke være punktum efter 'sti' i den sidste version.
18. november 2004 - 16:21
#9
Havde jeg fanget, men det ændre ikke noget
18. november 2004 - 16:30
#11
Har desværre ikke mulighed for at åbne flash lige nu da min maskine er banket helt ned af 75.000 posters databasekonvertering.
18. november 2004 - 16:37
#12
Helt ok :D Jeg er også på vej ud af døren, men håber du gider kigge på det senere. Ellers må jeg bare splitte den op i flere variabler - men det kan bare ikke være rigtigt!
18. november 2004 - 16:39
#13
joch, se hvad ask_m siger til dig :) Det korrekte ville være at gemme en direkte sti til det tekstfelt, du nu arbejder på - i stedet for en tekststreng repræsenterende stien til det. Dog hvis du insisterer på at gøre det på din (ærlig talt noget tumpede) metode, så ville det se ud som: _root.sti = "side.notat1.myText"; trace("Teksten er "+eval("_root."+_root.sti).text); Men den pæne løsning er da helt sikkert: _root.sti = _root.side.notat1.myText; trace("Teksten er "+_root.sti.text); Kan du følge mig? -- Morten Barklund
18. november 2004 - 16:52
#14
Hej Morten Undskyld at jeg ikke har skrevet den lange forklaring på dette spørgsmål, men det ville ikke være til at overskue! Derfor oprettede jeg det som dette lille eksempel. Den korrekte metode virker ikke til det jeg skal bruge det til, men din "noget tumpede" måde, redder mig :)
18. november 2004 - 17:03
#15
Hvis jeg skal være helt ærlig, så bør du gøre dig selv den store tjeneste, at lave det om øjeblikkeligt. :/ Og hvis det skyldes, at der så er for mange ting, du skal lave om, skulle du måske have undersøgt det fra starten. (altid nemt at være bagklog) :P Men jeg kaster et lille svar herind alligevel :) -- Morten Barklund
18. november 2004 - 18:11
#16
Hvis du har en sti med punktummer som er gemt som String kan du kun bruge eval, ellers er du nødt til at parse den. Såfremt side ligger i _root og _root.sti IKKE har punktum til sidst, er svaret: Tekst = eval("_root."+_root.sti).text; Hvis du nægter at bruge eval kan du jo altid lave den med en rekursiv oneliner :) :) :) Tekst = (function(p){m=p.split(".");return(m.length==1?this[p]:arguments.callee.call(this[m[0]],m.slice(1).join(".")))}.call(_root,_root.sti)).text;
18. november 2004 - 22:41
#17
Hej Morten Jeg får bare ikke fat i data med den "korrekte" måde. Det jeg helt præsist skal bruge det til, er at få textFormat på et tekstfelt... Det er eval funktionen jeg skulle bruge (Har aldrig brugt den før) I en knap hentes textFormat på den aktive/valgte tekst så jeg laver denne string: currentFormat = eval(_root.SelectTekst).getTextFormat(Begin, End); Det virker ikke på den anden måde... JEG kan ikke få det til at virke på den anden måde ;) Takker for hjælpen :D
19. november 2004 - 13:30
#18
Well, jeg siger tak for point alligevel :) og paal_dk, velkommen til - ikke mange herinde ville kunne fyre en sådan one-liner af, så du vil absolut være blandt de bedre scriptere, der kan hjælpe mange, hvis du vælger at blive herinde :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.