Avatar billede 7th Praktikant
31. marts 2004 - 17:50 Der er 19 kommentarer og
1 løsning

Variabel fra url til movie clip

Jeg prøver på at indlæse en simpel variabel fra url på en php side ind i et movie clip, men kan ikke få det til at virke. Jeg er ret ny i flash, og har muligvis fået blandet tingene sammen.

Jeg har en url som hedder index.php?vis=nyheder
Hvis vis er lig med nyheder, så skal movie clip tween gå til frame 10. Problemet er at den gør det hele tiden.

onClipEvent (load)
{
    this.loadVariables ("index.php" , "GET");
}

onClipEvent (data)
{
    if (vis == nyheder)
    {
        tween.gotoAndStop (10);
    }
}

Jeg er kommet i tvivl om min indlæsningsmetode er korrekt, da jeg læste spørgsmål http://www.eksperten.dk/spm/435267
Avatar billede pyroman Nybegynder
31. marts 2004 - 17:59 #1
Man angiver ikke i flash med hvilken metode den bruger til at hente variabler! Det er kun når man sender...

Du bør desuden bruge loadVars opbjektet:

mineVars = new LoadVars();
mineVars.load("index.php");
mineVars.onLoad = function(success){
  if(success){
    if(this.vis = "nyheder"){
      tween.gotoAndStop(10);
    }
  }
}

Men så skal din PHP udskrive "vis=nyheder" - og det gør den nok ikke når det er index-siden...?
Avatar billede 7th Praktikant
31. marts 2004 - 18:37 #2
OK, min kode var helt ved siden af ;o)

Jeg har fundet dette spørgsmål http://www.eksperten.dk/spm/233544, som handler om præcis det samme. Jeg har sat variablen ind i <param value>. Hvordan refererer jeg så til variablen vis i movie clip?

onClipEvent (load)
{
    if (_root.vis == nyheder)
    {
        tween.gotoAndStop (10);
    }
}

Virker ikke. Mine movie clips, som jeg forsøger at hente variablen vis ind i, lægger på main timeline.
Avatar billede 7th Praktikant
31. marts 2004 - 18:51 #3
Jeg tror jeg har forstået det nu.

onClipEvent (load)
{
    if (_parent.vis == "nyheder")
    {
        tween.gotoAndStop (10);
    }
}
Avatar billede pyroman Nybegynder
31. marts 2004 - 19:00 #4
Virker det?

Hos mig virker det umiddelbart heller ikke når man sætter sætter en variabel i <param> - men når man sætter den i <embed> koden virker det fint:

<embed src="test.swf?vis=nyheder" quality="high" bgcolor="#ffffff" width="550" height="400" name="test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
Avatar billede pyroman Nybegynder
31. marts 2004 - 19:01 #5
og så selvf. "" udenom nyheder i if-koden...! - og _root isedet for _parent (er ligemeget hvis din knap ligger i _root)
Avatar billede 7th Praktikant
31. marts 2004 - 19:07 #6
Det virker hos mig i param. Jeg har muligvis et spørgsmål mere du sikkert kan løse, men vil lige prøve mig frem først.
Avatar billede 7th Praktikant
31. marts 2004 - 19:50 #7
Jeg er ret sikker på jeg har løst det sidste problem jeg havde, men hvis du har lyst til lige at tjekke min kode for eventuelle fejl, så er points dine ...og det er ikke noget lang og indviklet kode :o) Jeg kan iøvrigt ikke få _root.variabel til at virke, anyways...

Min knap består af et movie clip indeholdende en knap og et movie clip, og skal virke således.
På mouseover afspilles et movie clip.
På mouseout afspilles samme movie clip baglæns.
Hvis man trykker på knappen, skal mouseover og -out deaktiveres.

Lad os kalde movie clippet på main timeline for nyheder. Den har koden...

onClipEvent (load) {
this.action = true;
   
if (_parent.down == "nyheder") {
this.action = false;
tween.gotoAndStop (10);
}
}

Knappen i movie clippet nyheder har koden...

on (release) {
getURL ("index.php?vis=nyheder");
}

on (rollOver) {
if (_root.nyheder.action == true) {
tween.play();
tween.reverse = false;
}
}

on (rollOut) {
if (_root.nyheder.action == true) {
tween.reverse = true;
}
}

Movie clippet tween i movie clippet nyheder har koden...

onClipEvent (enterFrame) {
if (reverse == true) {
this.prevFrame();
}
}
Avatar billede 7th Praktikant
31. marts 2004 - 20:13 #8
http://www.justrandb.dk/flash/ min menu som du har hjulpet mig med :o)
Avatar billede pyroman Nybegynder
31. marts 2004 - 20:46 #9
Jeg har en ny måde at opbygge det på:

I stedet for at lave så mange knapper og movieclips - laver du nu bare ét movieclip! I dette ligger din grafik med tween og det hele i fx frame 1-10...
Så i første frame smider du bare dette script:

if (_parent.down == "nyheder") {
    action = false;
    reverse = false;
    gotoAndStop (_totalframes);
}else{
    action = true;
    reverse = true;
}
this.onEnterFrame = function(){
    if(action){
        if(reverse) prevFrame();
        else nextFrame();
    }
}
this.onRollOver = function(){
    reverse = false;
}
this.onRollOut = function(){
    reverse = true;
}
this.onRelease = function(){
    gotoAndStop(_totalframes);
    action = false;
    reverse = true;
}
stop();


Jeg tror det har den ønskede virkning...
Avatar billede 7th Praktikant
31. marts 2004 - 21:07 #10
OK, tak. Jeg tror jeg lader det være som det er lige nu, da jeg har brugt ret meget tid på at få den simple, men ønskede effekt frem. Jeg kan godt se, min opbygning kunne være bedre, og mere effektiv, men skal jo prøve sig frem først. Det er blot min første uge med Flash :o)

Spørgsmålet skal jo lukkes, så hvis du kommer med et svar ;o)
Avatar billede 7th Praktikant
31. marts 2004 - 21:15 #11
Hov...angående din kommentar 31/03-2004 19:00:13 om embed src="test.swf?vis=nyheder".

Hvilken browser tjekkede du det i? Jeg har nemlig lige testet, og mærkelig nok vil Internet Explorer kun godtage på param name="movie" value="menu.swf?vis=nyheder, mens Mozilla Firebird kun vil godtage på embed src="test.swf?vis=nyheder".
Avatar billede pyroman Nybegynder
31. marts 2004 - 22:22 #12
mozilla!

Hmm ret trist! Måske bliver du nødt til at gøre det browser bestemt!!

Det kan jeg godt ordne... men må vente til i morgen...
Avatar billede 7th Praktikant
31. marts 2004 - 23:47 #13
Nej, nej, behøves ikke. Når bare variablerne bliver sat på embed og param, så virker det i begge browsere.
Avatar billede 7th Praktikant
01. april 2004 - 15:47 #14
Nu har du været så venlig at hjælpe mig hele to dage i træk, men du har altså glemt at fortælle mig om det skide caching problem ;o) Spøg til side, jeg fumlede med det i lang lang tid igår, og min umiddelbare løsning blev at sætte nogle headers i php.

header ("Cache-control: no-cache , must-revalidate");
header ("Pragma: no-cache");
header ("Expires: Mon , 01 Jan 01 01:01:01 GMT");

Har du andre forslag/muligheder, som er pænere, som jeg kunne kigge nærmere på? - og husk nu lige et svar :o)
Avatar billede 7th Praktikant
02. april 2004 - 06:54 #15
Altså pyroman. Jeg synes ikke du hører så godt *SS* ;o) Hvis læser dette, HUSK et SVAR tak :o)
Avatar billede pyroman Nybegynder
02. april 2004 - 18:15 #16
Hvad er det for et caching problem?

Og så et svar her! Hvis du ligefrem bliver utilfreds over det :)
Avatar billede 7th Praktikant
02. april 2004 - 20:34 #17
Jeg har jo denne simpel menu med nogle ganske almindelige link. Intet andet. Når man trykker på et link, læses den pågældende side også fint første gang. Problemet med caching opstår, når man ændre på noget på siden, som allerede er blevet indlæst. Så hentes opdateringerne ikke, men læses i stedet for fra cachen.

Jeg undre mig lidt over dette problem, idet jeg jo på ingen måder indlæser sideindholdet i min flash fil. Jeg har søgt efter løsninger, og stort set alle fundne løsninger omhandler, når man indlæser noget i en flash fil.

De to eneste løsninger jeg har indtil nu er den med headers, og så at sende et random nummer med på linket. For eksempel index.php?variabel=værdi&tilfældig=xxx, hvor xxx så ændres hele tiden. Dette synes jeg dog ikke er en holdbar løsning.

Jeg har lavet et lille eksempel, så du kan se problemet http://www.justrandb.dk/flash/

En simpel php side, som viser tiden. Links på knapperne er index.php?vis=xxx. Ved tryk på Test link, så ændres tiden hver gang. Hvis man trykker på en af knapperne, er man nød til at refreshe for at ændre tiden.
Avatar billede 7th Praktikant
03. april 2004 - 18:50 #18
Du ville være fedt hvis du kan svare på det med cache. Som det er nu, er min menu nemlig røget ud til fordel for animerede giffer. Anyway tak endnu engang for hjælpen :o)
Avatar billede pyroman Nybegynder
03. april 2004 - 20:10 #19
Hmm - altså jeg tror den med random værdi er eneste løsning - den er også dejlig nem og virker!!
Avatar billede 7th Praktikant
03. april 2004 - 20:27 #20
OK, tak.
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