Avatar billede Slettet bruger
08. november 2004 - 11:26 Der er 15 kommentarer og
1 løsning

Cross browser parameteroverførsl

Hej Eksperter,

Jeg har et problem med at overføre parametre til en Flash movie via <param name="FlashVars" value="minVar=blah" />. Jeg griber fat i den med Actionscript således: _root.minVar

Alerter jeg denne, får jeg fint "blah" i Internet Explorer, men er undefined i både Mozilla og Safari mv.

Spørgsmål:
----------
1: Hvordan overfører man en parameter til Flashen, således at det virker cross-browser?

2: Findes der en anden metode at overføre parametre på til Flash fra version 6 og nedefter? - Så vidt jeg har googlet mig frem til, er FlashVar en forholdsvis ny feature der er kommet til i Flash version 6 og opefter...
----------

Jeg ved godt at man kan overføre parametre via url overførsel til swf filen, men denne løsning kan jeg ikke bruge.

På forhånd tak :-)
Avatar billede nikolajdu Nybegynder
08. november 2004 - 11:28 #1
prøv med _level0.minVar - Hvis du skal bruge det i NS skal du tilføje :

<embed src="film.swf" FlashVars="minVar=blah">
Avatar billede nikolajdu Nybegynder
08. november 2004 - 11:33 #2
Hvis du kører xhtml så virker følgende i min IE, NS 7 og mozilla firefox (har ikke prøvet safari)

<object type="application/x-shockwave-flash" data="flash/preloader.swf" width="760" height="130">
    <param name="movie" value="flash/preloader.swf" />
    <param name="FlashVars" value="titled=Board News&amp;w=605&amp;605&amp;site=41&amp;id=" />
</object>
Avatar billede Slettet bruger
08. november 2004 - 11:42 #3
->nikolajdu, Det virker i IE, det er de andre der ikke virker, men jeg vil prøve _level0.minVar.

Kan du se noget galt i nedenstående embed kode, i forbindelse med NS, Safari mv:

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"     codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" 
    width="300"
    height="300"
    id="myBanner_1"
    name="myBanner"
>
    <param name="FlashVars" value="minVar=blah" />
    <param name=movie value="test.swf>
    <param name=quality value=high>         
    <param name=wmode value=opaque>               
    <EMBED src="test.swf"
        FlashVar="minVar=blah"
        menu=false
        wmode=opaque
        swliveconnect=true
        quality=high            
        WIDTH="300"
        HEIGHT="300"
        TYPE="application/x-shockwave-flash"
        PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"
    id=myBanner_1
    name=myBanner
    >
    </EMBED>
</object>

------------

En anden løsning jeg måske kunne bruge, hvis jeg kan tage fat i ID attributten istedet, kan man det inde fra Actionscript?
Avatar billede Slettet bruger
08. november 2004 - 11:45 #4
Argh! - FlashVar="minVar=blah"! Mangler et 's'.

Nå men det var da dejligt, hvad siger du til en alternativ løsning til Flash players < 6 ?
Avatar billede nikolajdu Nybegynder
08. november 2004 - 11:48 #5
Alternativet i Flash 5 vil være simpelthen at køre variablerne med i filnavnet - resultatet er umiddelbart det samme, men så skal der caches på ny hver gang parametrene ændres.

<param name=movie value="test.swf?minVar=blah">

  <EMBED src="test.swf?minVar=blah"
Avatar billede Slettet bruger
08. november 2004 - 12:58 #6
Ok, men hvad med id? Kan det ikke accesses indefra?
Avatar billede nikolajdu Nybegynder
08. november 2004 - 13:01 #7
id? Hvis du tænker id="myBanner_1" - så nej så skal du :


<param name=movie value="test.swf?minVar=blah&id=myBanner_1">
Avatar billede Slettet bruger
08. november 2004 - 13:13 #8
Ja, og det er lige præcis det jeg ikke kan! :-(  - denne url fjernes af eksterne folk, når movien skubbes ud på diverse sites. Nå men så blev jeg så meget klogere... - Smid et svar nikolajdu, så får du points :-)
Avatar billede nikolajdu Nybegynder
08. november 2004 - 13:15 #9
oki doki
Avatar billede Slettet bruger
08. november 2004 - 13:40 #10
Takker :-) - Forresten hvad med setVariable() - Den er vel kompatibel med Flash 5?
Avatar billede nikolajdu Nybegynder
08. november 2004 - 14:15 #11
jo det er den. du kan også bare scripte det ind i stedet.

<script>
var banner = "myBanner_1";
document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="300" id="'+banner+'" name="myBanner">');
document.write('<param name=movie value="test.swf?minVar=blah&id='+banner+'">');
document.write('</object>');
</script>

Husk at gøre det samme med embed. Tak for point.
Avatar billede Slettet bruger
09. november 2004 - 10:23 #12
Forresten, Hvis jeg benytter mig af setVariable("minVar","blah"); hvor tilgår jeg den? også fra _root?
Avatar billede nikolajdu Nybegynder
09. november 2004 - 10:25 #13
jep eller bedre - _level0 - Da _root i flashplayer 7 kan låses til ikke at være.... roden. :))
Avatar billede Slettet bruger
12. november 2004 - 20:16 #14
Godt så. Nu troede jeg så at jeg havde fundet en god løsning til Flash 5 understøttelse, men ak!

Nedenstående test er foretaget med Firefox 1.0.

Jeg vil godt understøtte indsprøjtningen af en variabel til flash player 5, med følgende embed kode:
-------------------------
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
    WIDTH="168"
    HEIGHT="60"
    id="banner_1"
    name="testSWF"
    ALIGN=""
    >
    <PARAM NAME=movie VALUE="flashtest.swf">
    <PARAM NAME=quality VALUE=high>
    <PARAM NAME=salign VALUE=LT>
    <PARAM NAME=bgcolor VALUE=#FFFFFF>
    <PARAM NAME="swliveconnect" value="true">
   
    <EMBED src="flashtest.swf"
        quality=high
        salign=LT
        bgcolor=#FFFFFF 
        WIDTH="168"
        HEIGHT="60"
        ID="banner_1"
        NAME="testSWF"
        ALIGN=""
        TYPE="application/x-shockwave-flash"
        PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"
        swliveconnect="true"
       
    </EMBED>
</OBJECT>
-------------------------

1: Jeg scanner på onload-handleren html dokumentet for objects og napper ID på movien.

2: Jeg injecter ID således: 
myMovie = document.getElementsByTagName("embed")["testSWF"];
myId = myMovie.id;
myMovie[0].SetVariable("identifier", myId);

3: Griber fat i variablen via actionscript således:
_level0.identifier

4: Tester parameteroverførslen således, når man klikker på swf filen:
on(release){getURL("java script:alert('"+ _level0.identifier +");");}
-------------------------

Det virker PERFEKT!, så jeg besluttede mig for at afinstallere Flash7 og installerede bagefter Flash 5 for at være *helt* sikker på at det spiller....

Det gør det så ikke :-(

Nogen forslag?
Avatar billede nikolajdu Nybegynder
13. november 2004 - 00:56 #15
Se mit indlæg af 08/11-2004 11:33:24 - det virker fint i forefox
Avatar billede nikolajdu Nybegynder
13. november 2004 - 00:58 #16
Nåååh det er setVarable - Jamen det virker kun i IE så det er så nemt. Allerede i Netscape 6 fjernede men Netscape 4 livedoc understøttelse og dermed muligheden for at sende ind i flash uden for IE verden.
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

Capgemini Danmark A/S

Client Partner

Banedanmark

ERTMS Test Manager

Paychex Europe

Scrum Master

Capgemini Danmark A/S

AI/Data Engineer