Avatar billede jenz42 Nybegynder
07. februar 2005 - 13:01 Der er 17 kommentarer

GetURL med udgangspunkt i den aktuelle URL

Jeg har et site i frames. Flashmenuen ligger i én frame og indholdet ligger i den anden frame som forskellige asp sider.
Alle asp sider ligger i to sprogversioner, som er navngivet henholdsvis *-us.asp og *-d.asp.

Hvordan kan man fra flashmenuen skifte fra den ene til den anden sprogversion uden at kome væk fra det aktuelle emne?


I Java script ville det se ud som nedenfor, men hvordan gøres det i flash?

<script language="JavaScript">
<!--
var ChngLanguage = self.location.href

var GermanChngLanguage = ChngLanguage.replace("-us.asp", "-d.asp")
document.write ("<h3><a href=" + GermanChngLanguage+ ">German</a></h3>")

var EnglishChngLanguage = ChngLanguage.replace("-d.asp", "-us.asp")
document.write ("<h3><a href=" + EnglishChngLanguage + ">English</a></h3>")

//-->
</script>
Avatar billede docks Nybegynder
07. februar 2005 - 13:19 #1
hmmm

prøv evt med flashcvars?

Når du loaderflashen så kan du bruge flashvars til at smide værdier ind i flash i selve embed koden.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="794" height="34" VIEWASTEXT>
  <param name="movie" value="../Media/DK/Activity/Flash/dilemmaBottom.swf">
  <param name="quality" value="high">
  <param name="flashvars" value="myLanguage=0" />
  <embed src="../Media/DK/Activity/Flash/dilemmaBottom.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="794" height="34"></embed>
</object>


<param name="flashvars" value="myLanguage=0" />  <--- bemærk denne linie.

vjha ASP'en kan du så ændre denne værdi i din menu embed kode. Du kan så i din flash blot:

var myLanguage

if(myLanguage == "1"){
gotoAndStop("germanMenu");
}

...jeg er nok ikke så god til at forklare :S
Avatar billede jenz42 Nybegynder
07. februar 2005 - 13:35 #2
Det virker vist kun, hvis det er i samme frame, og flashen bliver loadet igen og igen, gør det ikke?

I mit tilfælde loades flashen én gang og siderne hentes i et andet frame.
Avatar billede docks Nybegynder
07. februar 2005 - 13:55 #3
det burde da stadig kunne fungere.

Lad os sige at du i dit main html vindue har en interface.swf som er embedded og loader alle undersiderne ind i sig. I embedkode til interface.swf lægger ud en flashVar f.eks. 3 (underside 3).

Når man så skifter sprog og siden refreshes så loades interface.swf ind igen, men denne gang med 3 i sin flashvar der fortæller at det er underside 3 der skal loades ind.
Avatar billede docks Nybegynder
07. februar 2005 - 13:56 #4
hvis siden ikke skal refreshe når man skifter sprog så skal du over og have fat i noget javascripts kommunikation mellem flash og JS, udover det skal du også kigge på kommunikation mellem forskellige frames
Avatar billede jenz42 Nybegynder
07. februar 2005 - 14:02 #5
Jeg tror, det er det sidste, der bliver tilfældet. Jeg arbejder på det lige nu.
Avatar billede jenz42 Nybegynder
07. februar 2005 - 14:10 #6
Det er godt nok ikke nemt. Gode bud er meget velkomne.
Avatar billede docks Nybegynder
07. februar 2005 - 14:38 #7
det kan være dette kan hjælpe dig lidt på vej:

http://www.quirksmode.org/js/flash_call.html#
Avatar billede jenz42 Nybegynder
07. februar 2005 - 14:40 #8
Tjah.

Jeg laver lige 1000 ting på en gang, så jeg vender tilbage lidt senere.
Avatar billede barklund Nybegynder
07. februar 2005 - 15:42 #9
Du kan jo bare kalde en javascript funktion fra flash som:

getURL("java script:ChangeLanguage();void 0;");

Og så lave en javascript funktion til at teste den anden frames url, og skifte tilsvarende. Det er jo ret nemt :)

--
Morten Barklund
Avatar billede jenz42 Nybegynder
07. februar 2005 - 15:46 #10
Hvis det var nemt for mig, havde jeg jo nok ikke oprettet den her tråd.
;)
Avatar billede barklund Nybegynder
07. februar 2005 - 16:25 #11
Men du kan godt gennemskue det nu?
Avatar billede jenz42 Nybegynder
08. februar 2005 - 08:33 #12
Nnehj. Måske strukturen i det, men jeg er ikke så meget kodehaj, at jeg kan bygge det op. :_(
Avatar billede barklund Nybegynder
08. februar 2005 - 09:13 #13
Altså i den html-side, som indeholder din flash-menu tilføjer du javascriptet:

<script language="JavaScript">
<!--
var f = top.frames["otherframe"];
function ChangeLanguage() {
    var url = f.location.href
    if (url.indexOf("-us.asp") != -1) {
        f.location.href = ChngLanguage.replace("-us.asp", "-d.asp");
    } else {
        f.location.href = ChngLanguage.replace("-d.asp", "-us.asp");
    }
//-->
</script>

Hvor f er et link til den anden frame.

Så skriver du blot på en skiftsprog-knap i flash:

skift_sprog.onRelease = function() {
    getURL("java script:ChangeLanguage();void 0;");
}

Så skulle det virke :)

--
Morten Barklund
Avatar billede jenz42 Nybegynder
08. februar 2005 - 09:58 #14
Æv, det virker ikke. Der sker desværre ikke rigtig noget.
Jeg har udskiftet "otherframe" med "main", som er framens ID.
Således er linien blevet til
var f = top.frames["main"];
Var det rigtigt forstået?

Men det ser ud til, at det er vejen frem. Dog lægger det op til en sprog-toggle knap, der skifter mellem de to sprog i stedet for to knapper, og det er lidt usædvanligt, men det kan da godt være, jeg kan få det trumfet igennem.
Avatar billede barklund Nybegynder
08. februar 2005 - 10:43 #15
Ellers er det da bare at lave to funktioner og to knapper? Det kan du vel nok finde ud af ud fra det givne?

Prøv at lave et almindeligt html-link med funktionen som onClick - og find din javascript konsol frem i den browser, du nu måtte bruge, for at se, pm der kommer nogle javascript fejl.
Avatar billede jenz42 Nybegynder
08. februar 2005 - 10:48 #16
Jo, mon ikke, jeg klarer det herfra.

Smid et svar for velfortjente points.
Avatar billede barklund Nybegynder
08. februar 2005 - 11:08 #17
Men hvis der er nogle javascript fejl, skal du nok lige finde frem til dem først - jeg laver ikke så voldsomt meget javascript, men det ser da rigtigt ud. :)

Og selve syntaksen med at kalde det fra flash er enkel nok :)
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

IT-JOB