VARIABLE IN loadSound() VERARBEITEN?

schlodd

Mitglied
Hallo an alle Leser und Helfer hier!

FRAGE: wie bekomme ich den URL-STRINGS der in einer Variable(URL-CODIERT) in dem loadSound()-Aufruf?
Mein Gedankenansatz wie folgt, der leider nicht funktioniert.

PHP CODE: Hier wird die Variable mit den URL-STRING erzeugt
PHP:
echo "pfad=".urlencode("http://www.yyy/sounds/".$_GET['song_id'].".mp3");
AS CODE
PHP:
//Sound-Objekt erzeugen
soundsample = new Sound(this);
// Variable "pfad" holen welche die URL zur MP3-Datei beinhaltet
loadVariables("http://www.yyy/sounds/import.inc.php",this, "GET");
// MP3 streamen
soundsample.loadSound(pfad, true);

Würde mich freuen, Hinweise zur Lösung von Euch zu bekommen.
Vielen Dank schonmal im Voraus!
 
Zuletzt bearbeitet:
Hallo.
Was gibt denn ein trace() von pfad aus? Ich vermute mal, dass da ein undefined kommt - loadVariables braucht i.d.R. einen Moment, um die Variablen einzulesen. Dieser Moment reicht aus um das loadSound(pfad, true) auszuführen, bevor die Variable pfad zur Verfügung steht. Probier's mal mit der neueren und besseren loadVars-Klasse:

Code:
soundsamle = new Sound(this);

jens = new LoadVars();
jens.onLoad = function() { // wird ausef+hrt, wenn alle variablen eingeladen wurden
soundsamle.loadSound(jens.pfad, true);
}
jens.load("www.yyy.bla./foo.php");

Eventuell möchtest du sendAndLoad statt load verwenden - schau dazu mal im Flash Referenzhandbuch nach!

Gruß
jens
 
Danke Jens B., hat leider nicht funktioniert.
trace(pfad) gibt wie Du schon sagtest ein "undefined" liegt aber auch
daran da man diese Datei nur auf dem Server selbst abrufen kann.

Deswegen habe ich mir zum Testen ein dyn. Textfeld angelegt was mir auch
den richtigen URL-String der MP3-Datei ausgibt.
Aber wenn es so ist das es an zu wenig Zeit zum laden liegt, dass der pfad
nicht an das loadSound übergeben wird weil die Variable noch nicht geladen
wurde, dann könnte ich vielleicht mit einer Warteschleife nachhelfen.(?) Ich
dachte nur, dass das Script von oben nach unten abgearbeitet wird.(?)

Muss doch noch viel lernen....
Ich hoffe es gibt noch Vorschläge zu einer Lösung :)
 
Ich hab dir doch einen Script gepostet mit dem das Problem umgangen wird...? Muss halt nur entsprechend deinem PHP-Script, welches ich nicht kenne, am Ende entwerder jens.load() oder jens.sendAndLoad() aufrufen. -> Flashhilfe.

Und bitte nächstes Mal weniger CAPS im Threadtitel.
 
Ich hab dir doch einen Script gepostet mit dem das Problem umgangen wird...? Muss halt nur entsprechend deinem PHP-Script, welches ich nicht kenne, am Ende entwerder jens.load() oder jens.sendAndLoad() aufrufen. -> Flashhilfe.

Und bitte nächstes Mal weniger CAPS im Threadtitel.
Sorry wenn ich Dich falsch verstanden habe
Du meintest so? (hier mein PHP-Script)
PHP:
if(isset($_GET['artist']))
{
echo "pfad=jens.load(".urlencode("http://www.yyy/sounds/".$_GET['song_id'].".mp3").")"; 
}
Ich glaube ich hau hier etwas durcheinander, oder? Na ich probiere nochmal paar Varianten, und sage Bescheid, was dabei rausgekommen ist.
Dankeschön für Deine Hilfe! Da fühlt man sich hier nicht so allein gelassen.
 
Nein. Dein PHP-Script sollte einfach nur die Adresse der Sounddatei zurückgeben. Am Besten mit einem & am Anfang und am Ende, damit das auch wirklich richtig eingelesen wird von Flash.

In Flash selber rufst du dann obiges Script auf. Die letzte Funktion musst du, wenn an das PHP-Script noch eine Information gesendet werden soll, durch sendAndLoad ersetzen. Also z.B. statt jens.load(bla) das hier.

Code:
jens.sendAndLoad("meinephp.php", song_id, "GET");

Wenn das immernoch nicht reicht poste mal bitte das ganze PHP-Script.

Gru´
jens
 
Nein. Dein PHP-Script sollte einfach nur die Adresse der Sounddatei zurückgeben. Am Besten mit einem & am Anfang und am Ende, damit das auch wirklich richtig eingelesen wird von Flash.

In Flash selber rufst du dann obiges Script auf. Die letzte Funktion musst du, wenn an das PHP-Script noch eine Information gesendet werden soll, durch sendAndLoad ersetzen. Also z.B. statt jens.load(bla) das hier.

Code:
jens.sendAndLoad("meinephp.php", song_id, "GET");

Wenn das immernoch nicht reicht poste mal bitte das ganze PHP-Script.

Gru´
jens
Hallo Jens, dankeschön dass Du wieder Zeit gefunden hast hier reinzuschauen um mir zu helfen.
Ist sicher nicht einfach jemanden wie mir, der nur mal gelegentlich mit Flash zu tun hat was beizubringen.

Habe mir mal das neue Flash CS4 installiert. Hat das jetzt Folgen auf mein Script?

Ich verstehe nicht wieso man an onLoad eine Funktions-Definition übergibt.
Habe ehrlich gesagt keine Ahnung und woher weiß onLoad welche Variable ich meine?. Letztendlich bekomm ich von onLoad doch nur ein TRUE oder FALSE oder?

Die Flash-Hilfe die man mit F1 aufruft, kann man glatt vergessen. Deswegen bin ich es Leid mir hier Hilfe zu suchen.

Zurück zur Sache

Also ich brauch und bekomme nur eine Variable von dem PHP-Script und die lautet pfad.
pfad beinhaltet den Link als string zur MP3, der durch das PHP-Script dynamisch erzeugt wird.

Hier das PHP-Script, habe es kommentiert. Vielleicht endecktst Du hier Fehler
PHP:
// Diese Datei "import.inc.php" ist in einer Haupt-PHP-datei includiert welche durch den Aufruf  selbst die Variable $_GET['artist'] bekommt
// somit ist die Variable auch hier in dieser Datei  "import.inc.php" verfügbar
// Abfrage ob diese Variable existiert
if(isset($_GET['artist'])) { // existiert die Variable dann erzeuge den Flash-Pfadname "pfad" mit der Wertzuweisung des URL-STRINGs (urlencoded dfür Flash)
echo "&pfad=".urlencode("/sounds/".$_GET['artist'].".mp3");
echo"&"; 
/*  anderer Test
 echo "pfad=/sounds/".$_GET['artist'].".mp3"; */
 }

Flash soll einfach nur diese Variable pfad einlesen und in loadSound den URL-STRING daraus lesen. (Die Ausgabe in einem Textfeld in Flash funktioniert. Die Variable kommt also in Flash an.)

Die Flashdatei hat nur ein Bild und 2 Ebenen.
Auf eins sitzt ein Button um den Sound stoppen zu können.
In der 2 Ebene liegt nur das Script für das Sound-Object.

Hoffe noch etwas Hilfe zu bekommen.
Ciao schlodd
 
Oh je, hab es kommen sehen...

Scriptprüfung im neuen Flash ergibt 0 Fehler aber dann beim Compilieren
gibt es ´ne Menge Fehler.

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 3: 1067: Implizite Umwandlung eines Werts des Typs flcs4_sound_fla:MainTimeline in einen nicht verwandten Typ flash.net:URLRequest.
mp3_sound = new Sound(this);

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 5: 1120: Zugriff auf eine nicht definierte Eigenschaft v_loader.
v_loader = new LoadVars();

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 5: 1180: Aufruf einer möglicherweise undefinierten Methode LoadVars.
v_loader = new LoadVars();

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 7: 1120: Zugriff auf eine nicht definierte Eigenschaft v_loader.
v_loader.onLoad = function() {

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 12: 1120: Zugriff auf eine nicht definierte Eigenschaft v_loader.
v_loader.load("http://www.ska-timesde/import.inc.php", this, "GET");

**Error** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 9: 1120: Zugriff auf eine nicht definierte Eigenschaft v_loader.
mp3_sound.loadSound(v_loader.pfad,true);

**Warning** Szene 1, Ebene 'Ebene 1', Bild 1, Zeile 5: Warning: 1060: Migrationsfehler: Die Methode LoadVars wird nicht mehr unterstützt. Weitere Informationen hierzu finden Sie in der Klasse URLVariables und den Eigenschaften URLRequest.urlVariables, URLRequest.postData und URLLoader.dataFormat..
v_loader = new LoadVars();

Anzahl der ActionScript-Fehler: 6, Gemeldete Fehler: 6

Einen neuen Ansatz habe ich hier gefunden, jedoch nicht für das Problem die URL in einer Variablen zu übergeben.

Vielleicht hat jemand eine Idee? :confused:
 
Wenn du willst dass wir uns ansehen wodran die Fehlen legen brauchen wir auch den Script, bei dem die Fehler auftreten. Sonst köönnen wir ja nur raten was GENAU du da verändert hast.
 
Wenn du willst dass wir uns ansehen wodran die Fehlen legen brauchen wir auch den Script, bei dem die Fehler auftreten. Sonst köönnen wir ja nur raten was GENAU du da verändert hast.
Nein danke Jens, ich muss mir erstmal ein neues Script basteln und lernen wie ich das überhaupt realisieren kann. Da das neue Flash CS4 mit den alten Script nur Fehler beim Compilieren erzeugt.

Schade das man jetzt wesentlich mehr Code brauch um etwas einfaches zu programmieren. Na ja, ich kann nicht Programmieren, deswegen ist für mich wenig Code besser(überschaubarer). Habe mir Lernmaterial bestellt und werde mit dem Grundkentnissen nochmal von vorn beginnen.

Also danke nochmal an dieser Stelle, bis später vielleicht.
 
Zurück