Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-12-2005, 19:16   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
LoadVars() erkennt einen bestimmten Variablentyp nicht mehr

Moin moin,
ich möchte in einem PHP Skript einer Variable über einen URL String einen Wert zuweisen.
Dann die Variable mit LoadVars() in AS einlesen und weiter verarbeiten.

Wenn ich der Variable in PHP einen einfachen String zuweise ist dies kein Problem, alles läuft einwandfrei.

Übergebe ich den Wert über einen URL Parameter (z.B. ....?call=print), passiert merkwürdiges.
Die Variable wird im PHP Skript richtig erkannt und weiterverarbeitet, aber sobald AS die Variable per LoadVars() reinholt ist der Wert der Variable weg.

Wer hatte schon mal ein ähnliches Problem, oder noch besser wer kann mir da helfen???

Vielen Dank schon mal für eure Hilfe.
Pazel



AS Code, Flash MX 2004, Exportversion 7 AS 2.0:

Zitat:
var loader=new LoadVars();
loader.load("menue.php");
loader.onLoad = function(success){
if(success){
if(this.seite == "home"){
stop();
}else if(this.seite == "print"){
gotoAndStop(2);
}else if(this.seite == "web"){
gotoAndStop(3);
}else if(this.seite == "applikationen"){
gotoAndStop(4);
}else if(this.seite == "media"){
gotoAndStop(5);
}
}
}
stop();


PHP Code:

Zitat:
<?php
// Wird der Parameter per URL übergeben, dann kennt AS die Variable nicht mehr.
// Die Variable Seite
// $seite = $_GET['call']; <- DAS HÄTT ICH GERN, KLAPPT ABER NICHT

// Wird die Variable als einfacher String übergeben, dann hat AS kein Problem diese zu erkennen und weiter zu verarbeiten
$seite = "print";
echo $seite;
switch($seite){
case "":
$seite = "home";
break;
case "home":
$seite = "home";
break;
case "print":
$seite = "print";
break;
case "web":
$seite = "web";
break;
case "applikationen":
$seite = "applikationen";
break;
case "media":
$seite = "media";
break;
default:
$seite = "home";
break;
}
echo "&seite=".$seite."&";
?>
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 19:43   #2 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
was steht denn da, wenn du die php datei im browser aufrufst?
kommt da das richtige bei raus, wenn du die var über die url setzt?

pape
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 19:50   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
was steht denn da, wenn du die php datei im browser aufrufst?
kommt da das richtige bei raus, wenn du die var über die url setzt?

pape

Alles richtig, anscheinend ist der Fehler erst beim Einlesen in AS.

pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 20:09   #4 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
zeig mal den code, mit welchem du die daten einliest.
(fla+php datei ma anhängen)

pape
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 20:19   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
zeig mal den code, mit welchem du die daten einliest.
(fla+php datei ma anhängen)

pape
Bin noch neu hier, hoffe es hat geklappt!

Pazel
Angehängte Dateien
Dateityp: zip LoadVars.zip (13,3 KB, 4x aufgerufen)
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 20:37   #6 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hi!

kann es sein, dass du einfach vergessen hast, dem textfeld den instanznamen (para_feld) zu geben?

zudem musst du den parameter beim load() übergeben :

PHP-Code:
loader.load("menue.php?call=media"); 
und außerdem wundere ich mich etwas über das html zeug in der php datei^^?!

pape
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 20:49   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
hi!

kann es sein, dass du einfach vergessen hast, dem textfeld den instanznamen (para_feld) zu geben?

zudem musst du den parameter beim load() übergeben :

PHP-Code:
loader.load("menue.php?call=media"); 
und außerdem wundere ich mich etwas über das html zeug in der php datei^^?!

pape

Also das HTML Zeug ist von Flash erzeugt worden. Was in der Zip Datei ist ist nur ein Auszug aus dem Original um den Code übersichtlich zu halten.

Zu "loader.load("menue.php?call=media");":
Der Parameter, der ja variable ist, in diesem Fall "media" müsste dann im AS auch dynamisch erzeugt werden. Aber brauch ich das unbedingt? Schliesslich wird die Variable ja durch $_GET an $seite übergeben, und $seite wird in LoadVars() eingelesen und nicht mehr der URL Parameter. So sehe ich das.

Was den Instanznamen angeht, er heisst "para_feld". Das Textfeld ist auch nur da um zu sehen wie die Variable $seite in Flash heisst. Also nur Kontrolle. HAt zur weiteren Ausführung keine Bedeutung.

Pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 20:54   #8 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Ich hab das mit dem "loader.load("menue.php?call=media");" ausprobiert, statisch klappt das ja. Aber wie krieg ich das dynamisch hin?

loader.load("menue.php?call=???");

pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 21:35   #9 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wie du es sonst auch machen würdest

es handelt sich vermutlich um eine navigation. D.h. es gibt buttons. Auf diese legst du ein script, mit welchem du eine variable setzt und miit hilfe dieser kannst du dann die load("menue.php?call="+deineVar); anpassen kannst.

Allerdings ist erscheint es mir hier sehr sinnlos den umweg über php zu machen, weil du dann genau so gut die variablen schon im film setzen kannst (was du ja denn sowieso tun musst)...

Deine Herangehensweise erscheint etwas seltsam...
was willst du im endeffekt erreichen?

pape
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 21:52   #10 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
wie du es sonst auch machen würdest

es handelt sich vermutlich um eine navigation. D.h. es gibt buttons. Auf diese legst du ein script, mit welchem du eine variable setzt und miit hilfe dieser kannst du dann die load("menue.php?call="+deineVar); anpassen kannst.

Allerdings ist erscheint es mir hier sehr sinnlos den umweg über php zu machen, weil du dann genau so gut die variablen schon im film setzen kannst (was du ja denn sowieso tun musst)...

Deine Herangehensweise erscheint etwas seltsam...
was willst du im endeffekt erreichen?

pape
Durch den URL Parameter wird eine bestimmte Datei in die PHP Seite includiert. Zeitgleich soll deas Flashmenü sich auf die Seite die gerade angezeigt wird einstellen.

Beispiel:
Ich includiere eine Seite mit Inhalten aus dem Bereich "Print" in die Hauptseite in der auch das Flashmenü ist. Nun soll das Flashmenü auf "Print" stehen bleiben, diesen Link also highlighten.

Mag sein, dass die herangehensweise etwas seltsam ist, ich bin kein Flasher und ich arbeite das erste mal mit AS. Aller Anfang ist halt schwer ;-)


pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 22:00   #11 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
du kannst beim einbetten der swf file auch ein get parameter mit übergeben:

Code:
menue.swf?call=<? echo $seite ?>
dann liegt diese variable (call) auf der hzl (hauptzeitleiste / _root.call) und du kannst deine abfrage mit dieser variablen ausführen!
bei einem button-klick verlinkst du dann wieder auf menu.php?call=eineSeite und prüfst mit php die variable call, übergibst sie wieder an den flashfilm beim html-object und lädst die zusätzlichen sachen in die html datei!

edit:
du solltest dann aber die variable nicht "call" nennen, da das ein reservierter begriff in flash ist, sondern z.b. calli
Code:
<param name="movie" value="menue.swf?calli=<? echo $seite ?>" />
pape

Geändert von pape (30-12-2005 um 22:04 Uhr)
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 22:15   #12 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
du kannst beim einbetten der swf file auch ein get parameter mit übergeben:

Code:
menue.swf?call=<? echo $seite ?>
dann liegt diese variable (call) auf der hzl (hauptzeitleiste / _root.call) und du kannst deine abfrage mit dieser variablen ausführen!
bei einem button-klick verlinkst du dann wieder auf menu.php?call=eineSeite und prüfst mit php die variable call, übergibst sie wieder an den flashfilm beim html-object und lädst die zusätzlichen sachen in die html datei!

edit:
du solltest dann aber die variable nicht "call" nennen, da das ein reservierter begriff in flash ist, sondern z.b. calli
Code:
<param name="movie" value="menue.swf?calli=<? echo $seite ?>" />
pape

Bedeutet "_root.call", dass ich den LoadVars() verwerfen muss? Das wäre jetzt ein anderer Lösungsweg, oder was meinst du?

pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 22:23   #13 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
genau.
LoadVars ist hier überflüssig.

btw: du brauchst nicht immer meinen post zu zitieren... der steht ja eh drüber

pape
pape ist offline   Mit Zitat antworten
Alt 30-12-2005, 22:28   #14 (permalink)
Neuer User
 
Registriert seit: Sep 2005
Beiträge: 26
Zitat:
Zitat von pape
genau.
LoadVars ist hier überflüssig.

btw: du brauchst nicht immer meinen post zu zitieren... der steht ja eh drüber

pape
Naja, soll ich jetzt lachen oder doch besser weinen.
Jetzt hab ich mich seit langer Zeit dort durchgewurschtelt und jetzt kann ich alles vergessen und noch mal ganz von vorn anfangen.
Dann werd ich mich mal auf der Suche nach "_root.call" machen, in der Hoffnung damit meinem Ziel etwas näher zu kommen.

Vielen Dank auf jeden Fall und 'nen guten Rutsch, viel Spass bei euerm nächsten Konzert.

pazel
pazel ist offline   Mit Zitat antworten
Alt 30-12-2005, 23:11   #15 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
_root.call ist nur ein beispiel!!!

die sache ist wesentlich unkomplizierter als die mit LoadVars!

hier nochaml alles in einer übersicht:

2files:
menue.swf
menue.php

menue.php:
hier wird geguckt, ob eine get variable vorhanden ist , bzw. ob diese gültig ist.
Nennen wir sie beispielsweise "go" (menue.php?go=xxx)

das php script prüft also die variable und nach der prüfung steht in $seite eine gültige seite, die geladen werden kann.

nun wird in html ein Flashfilm eingebettet (menue.swf) (dazu gleich mehr) und danach der weitere html content geladen (kann auch dynamisch über die variable $seite funktionieren).

beim einbetten der menue.swf übergeben wir dieser eine variable, damit die swf entsprechenden inhalt darstellen kann.
das machen wir, indem wir an den parameter "name" noch (genau wie bei php) eine get variable dranhängen, nämlich $seite:

<param name="movie" value="menue.swf?go=<? echo $seite ?>" />

da kommt sowas wie das raus:
<param name="movie" value="menue.swf?go=media" />

menue.swf
das php script hat eine variable mitgegeben (go).
Da diese als get variable übergeben wurde liegt diese in der hauptzeitleiste des films und wir können somit mit _root.go auf diese zugreifen.
In Flash können wir also anhand der variablen _root.go den inhalt anzeigen lassen. Dazu könnte man beispielsweise im ersten Frame diese Abfrage machen:
PHP-Code:
switch(_root.go) {
    case 
"home"stop();
    break;
    case 
"print"gotoAndStop(2);
    break;
    case 
"web"gotoAndStop(3);
    break;
    case 
"applikationen"gotoAndStop(4);
    break;
    case 
"media"gotoAndStop(5);
    break;
    default: 
stop();

wobei auf den frames 1 bis 5 entsprechende inhalte liegen.

das wars schon

edit: wünsche auch nen guten rutsch

grz
pape

Geändert von pape (30-12-2005 um 23:13 Uhr)
pape ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele