Avatar billede mekaniker Nybegynder
17. juli 2005 - 15:26 Der er 17 kommentarer og
1 løsning

hente en variabel fra php

Jeg må nok lige sige at jeg ikke fatter en skid af flash..!
men jeg kan da programmere lidt.

Jeg har fundet en lille mp3 player som det efterhånden er lykkedes mig at tilpasset efter mit behov. Denne skal ligge på et site, hvor der er flere forskellige mp3 filer, men den er lavet meget statisk, dvs. at en variabel som hedder "sMP3Path" indeholder stien og filnavnet til filen.
Det ser sådan ud i flash:

onClipEvent(load) {
    //Sets the sMP3Path variable to where the MP3 is loaded.
    sMP3Path = "test.mp3";
    }


Er der ikke en der kan hjælpe mig med, at lave det lidt mere dynamisk, nu da sitet er i php.

Jeg har prøvet med noget forskelligt fra nogle små eksempler, men kan ikke få det til at virke. Hvis jeg bare lave en dynamisk tekstbox i en ny flashfil, kan jeg godt på php variablen ind i den, men ikke i denne player. Er det fordi det er et MovieClip, eller hvad...?

Jeg har prøvet med følgende.


onClipEvent(load) {
    //Sets the sMP3Path variable to where the MP3 is loaded.
    sMP3Path = loadVariablesNum("music.php", 0, "GET");
    sMP3Path = loadVariables("music.php", 0, "GET");
    }

I php filen står der dette:

echo "sMP3Path=test.mp3";

//Mekaniker
Avatar billede webt Nybegynder
17. juli 2005 - 18:47 #1
Hej,
Der er faktisk ikke så meget der skal ændres, grunden til du ikke kan få det til at virke er ikke fordi de er et movieclip men pga kommandoen du bruger loadVariablesNum vil loade værdierne ind i et niveau, og derfor vil du skulle hente dem via _level0.varNavn osv, mens loadVariables loader noget ind i et mc, den kan dog drille så derfor vil jeg anbefale at bruge loadVars objectet da den giver meget mere kontrol, feks. vil du kunne gøre:

onClipEvent (load) {
    var loadMp3:LoadVars = new LoadVars();
    //opret nyt instans af loadVars
    loadMp3.load("music.php");
    //hent data fra php
    loadMp3.onLoad = function(s) {
        //funktion der skal udføres når data er loadet
        if (s) {
            /*hvis data blev loadet (s vil ha enten værdien true eller false)
            Her kan vi så gøre hvad vi vil med sMP3Path den vil ligge i this.sMP3Path
            fx:*/
            _root.etEllerAndetMc.sMP3Path = this.sMP3Path;
        } else {
            //hvad vi skal gøre hvis data ikke blev loadet rigtigt
        }
    };
}

Håber du kan bruge det

Mvh
Martin
Avatar billede mekaniker Nybegynder
17. juli 2005 - 21:36 #2
Hej,
Jeg har prøvet at sætte det ind, det du har lavet, men jeg kan ikke få det til at virke.
Er det sådan at du evt. vil prøve at kigge på det, hvis jeg sender det til dig...?
Avatar billede mekaniker Nybegynder
17. juli 2005 - 21:46 #3
skriv evt. til mig her thomas@ oakhill.dk
Avatar billede webt Nybegynder
17. juli 2005 - 21:47 #4
Ja men det vil jeg da, jeg sender dig lige en mail

Mvh
Martin
Avatar billede mekaniker Nybegynder
17. juli 2005 - 22:17 #5
ok, fedt..! på forhånd tak.
Avatar billede webt Nybegynder
17. juli 2005 - 22:56 #6
Hej så har jeg kigget lidt på den, problemet er at den ikke når at loade variablen før den skal til at afspille den, den simpleste løsning vil derfor være at flytte mp3 afspilleren over i frame 2 (og sætte en stop() der) samt sætte en stop() i frame 1 og så sætte en lidt modificeret kode ind så frame 1 ser sådan ud:
stop();
var loadMp3:LoadVars = new LoadVars();
//opret nyt instans af loadVars
loadMp3.load("music.php");
//hent data fra php
loadMp3.onLoad = function(s) {
    //funktion der skal udføres når data er loadet
    if (s) {
        /*hvis data blev loadet (s vil ha enten værdien true eller false)
                    Her kan vi så gøre hvad vi vil med sMP3Path den vil ligge i this.sMP3Path
                    fx:*/
        _root.trackNo= this.trackNo; //gem trackNo i root
        play();
    }
};

Og på selve movieclippet sætter du så:
//Det var sådan det så ud til at starte med, og det virker
onClipEvent(load) {
    //Sets the sMP3Path variable to where the MP3 is loaded.
    sMP3Path = _root.trackNo; //hent værdien fra trackNo gemt i root
}

Så er vi sikre på at den er færdig med at loade fra php før den viser mp3 afspilleren og dermed også før den prøver at loade sangen

Så burde det virke, jeg sender den lige tilbage til dig
Mvh
Martin
Avatar billede webt Nybegynder
19. juli 2005 - 19:24 #7
Har noget bøvl med min e-mail af og til, modtog du filen?

Mvh
Martin
Avatar billede mekaniker Nybegynder
24. juli 2005 - 20:40 #8
Hej Martin, jeg har fået filen.
Jeg har bare ikke rigtig haft tid til at kigge på det før nu !

Det virker helt fint, men jeg har nogle problemer med at få det til at fungere på mit site. Jeg har prøvet en masse forskellige ting, men uden held desværre.. :-((

Jeg ville gerne vise denne player i en iframe, dvs at den ikke er synlig før man trykker på et af musik links'ne.
Jeg ved ikke om du kender noget til php, men jeg har prøvet følgende:

<?php
switch ($_GET['nummer'])
    {
    case 'test':
        echo "trackNo=test.mp3";
    break;
    case 'test1':
        echo "trackNo=test1.mp3";
    break;
    case 'test2':
        echo "trackNo=test2.mp3";
    break;
    }
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>MP3Player</title>
<link rel="stylesheet" type="text/css" href="../style/style.css">
</head>
<body>
<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="230" height="32">
  <param name="movie" value="mp3player.swf">
  <param name=quality value=high>
  <embed src="mp3player.swf" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="230" height="32"></embed>
</object>
</body>
</html>

==================================================

Men det virker ikke, og jeg tror godt jeg ved hvorfor. Det må være noget med at jeg skal kalde php-filen med en var. inde fra flashen. Og her har jeg prøvet en del forskellige ting uden held.
Men jeg fatter ikke så meget af det flash, og det er som om, at uanset hvad jeg prøver, virker det ikke.

Jeg tror jeg kunne klare den, hvis jeg kunne få den variabel, jeg kalder iframen med ind i flash'en.......! Forstår du....?

f.eks. hvis jeg kunne få indholdet af variablen "nummer" ind i flashen.

<a href="mp3player.php?nummer=test" target="mp3frame">test.mp3</a>

<iframe name="mp3frame" width="230" height="32" src="tom.php" scrolling="no" frameborder="0" marginheight="0" marginwidth="0"></iframe>

Kan du hjælpe mig med en løsning....?
Avatar billede webt Nybegynder
25. juli 2005 - 12:43 #9
Hej, det er helt i orden, jeg har også været på "mini" ferie, du har helt ret i at med loadVars skal du loade en anden php side som laver variablerne, i dit tilfælde vil det være langt lettere at bruge flashVars parameteren, så i mp3player.php går jeg ud fra du har din flash kode noget ala:

<object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,0,0" width="760" height="198">
  <param name="src" value="fil.swf">
  <embed src="fil.swf" pluginspage="http://www.macromedia.com/shockwave/download/" width="760" height="198"></embed>
</object>

Det eneste du skal gøre er at tilføje FlashVars parameteren
<param name="FlashVars" value="mp3fil=dinsang.mp3">

eller ja den dynamiske version med php jf dit eksempel med iframen
<param name="FlashVars" value="mp3fil=<?=$_GET["nummer"].".mp3"?>">

husk den skal ind både i object og i embed

så det bliver:

<object classid="clsid:166B1BCA-3F9C-11CF-8075-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,0,0" width="760" height="198">
  <param name="src" value="fil.swf">
<param name="FlashVars" value="mp3fil=dinsang.mp3">
  <embed src="fil.swf" pluginspage="http://www.macromedia.com/shockwave/download/" width="760" height="198" flashvars="mp3fil=dinsang.mp3"></embed>
</object>

Derefter vil du kunne hente mp3fil variablen ud fra flash vha
_root.mp3fil

så:
onClipEvent(load) {
    //Sets the sMP3Path variable to where the MP3 is loaded.
    sMP3Path = _root.mp3fil; //hent værdien fra mp3fil gemt i root
}

Det er langt nemmere på den måde end at rodde med alt muligt andet

FlashVars hos mm: http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=tn_16417

Håber du kan bruge det
Mvh
Martin
Avatar billede mekaniker Nybegynder
26. juli 2005 - 09:06 #10
Skal jeg så slet ikke bruge det du lavede sidst..?

Eller kan jeg bare slette hele første frame..?
Avatar billede webt Nybegynder
26. juli 2005 - 11:10 #11
Nej ikke med flashvars den er specifikt designet til at sende variabler til flash fra samme side som flashen ligger i mens flashvars og alt andet load halløj er lavet til at hente fra en anden fil end den den ligger i

Du siger bare til hvis du ikke kan få det til at virke, så smider jeg lige et eksempel op senere

Fortsat god dag
Martin
Avatar billede webt Nybegynder
04. august 2005 - 07:06 #12
Hej, jeg smider lige et svar her, da jeg ikke er hjemme i en uge (yay ferie), hvis du fortsat har problemer så skriv en mail til mig, så skal jeg nok lave et eksempel med flashvars og smide op

Ha en god uge
Mvh Martin
Avatar billede webt Nybegynder
15. august 2005 - 16:36 #13
Fået det til at virke, eller skal jeg fikse et eksempel?

Mvh
Martin
Avatar billede mekaniker Nybegynder
10. oktober 2005 - 12:45 #14
Nu har jeg endelig fået det til at virke..!

Mange tak for al din hjælp.
Avatar billede webt Nybegynder
11. oktober 2005 - 18:09 #15
Det var så lidt :) glad for du fik det til at virke og tak for points

Mvh
Martin
Avatar billede mekaniker Nybegynder
05. december 2005 - 12:14 #16
Hej Martin, jeg ville gerne udvide min player lidt, men er stødt ind i nogle problemer.
Hvis du har tid og lyst kunne jeg godt bruge din hjælp.

For det første kunne jeg godt tænke mig at bruge nogle små billeder med noget mouseover effekt til "play", "pause" og "stop" og måske også få tilføjet en "mute".

Jeg har lavet nogle små symboler i en anden fil, og disse har jeg prøvet både at lave om til knapper, også virker min mouseover effekt men den action jeg sætter på virker ikke.

hvis jeg laver dem til et movieklip, virker actionen, men ikke mouseover effekten.

Senere ville jeg også prøve at få lavet en volume control til playeren.

Hvis du har tid og lyst til at hjælpe, vil jeg gerne sende dig filen til plyaeren, som den ser ud nu, og den fil hvor jeg har lavet nogle symboler i.

mvh Thomas
Avatar billede webt Nybegynder
11. december 2005 - 13:59 #17
Hej, undskyld jeg ikke lige har svaret før nu, har ikke lige internet pt. men får i næste weekend, så der kan jeg være klar til hjælp :)

God søndag
Mvh
Martin
Avatar billede webt Nybegynder
21. december 2005 - 08:58 #18
Hej igen, jeg glemte alt om dette spørgsmål da jeg endelig kom online, pga projekter. Og tager på juleferie i dag, men hvis du skriver efter nytår her i spørgsmålet så lover jeg jeg er klar :)

Ha en god jul og et godt nytår

Mvh
Martin
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