[HILFE] Was mache ich falsch beim Variablen laden?

ChrisGru

Grünschnabel
Hallo

Zuerst mal, ich bin noch totaler Anfänger insachen AS und kenne mich da noch sogut wie nicht aus (Ich benutze FlashMX 6.0) ....

Also, ich will einfach nur aus einer php-Datei (index.php) die Variablen auslesen und in Flash in dynamischen Textfeldern anzeigen lassen....

So... Allerdings krieg ichs einfach nicht hin...

Hier meine PHP-Datei:

PHP:
<?php

$news1 = "Test test test";
$news2 = "Test test";
$news3 = "Test";

?>

In meiner Flash-Datei hab ich 2 Ebenen mit je zwei Bildern

Ebene1:
Bild 1 - Leer
Bild 2 - Drei Dynamische Textfelder mit jeweils den Variablennamen news1, news2 und news3 (Ohne Instanznamen)

Ebene2:
Bild1 - Hier lade ich meine Variablen über folgenden Befehl ein:
loadVariables ("index.php", "")

Bild2 - Hier habe ich ein einfaches stop ()

So, allerdings bleiben die Textfelder alle drei leer....

Ich bin mir ziemlich sicher, dass es nur ein total simples Problem ist, jedoch wie gesagt, kenn ich mich mit AS noch nicht so gut aus... Kriege erst nächste Woche mein Buch dazu.... :-(

Im Anhang habe ich die fla und die php angehängt....

Grüsse, Christian
 

Anhänge

  • test.zip
    2,3 KB · Aufrufe: 14
Oh man, da blick ich nicht grad so wirklich durch :-S

Hab mir jetzt mal dein Script -->hier<-- angeschaut und auch ein wenig rumgespielt/editiert, wie ichs dachte, aber ich kries einfach nicht hin.......

Also mein AS sieht jetzt so aus:

PHP:
_root.preloader._visible = 1; 
_root.DB_QUERY = new LoadVars (); 
_root.wortpfad = "index.php" 
_root.DB_QUERY.sendAndLoad (_root.wortpfad, _root.DB_QUERY, "POST"); 
_root.DB_QUERY.onLoad = function () { 
    _root.news1.htmlText = _root.DB_QUERY.news1; 
    _root.news2.htmlText = _root.DB_QUERY.news2; 
    _root.news3.htmlText = _root.DB_QUERY.news3; 
//Das hier oben drüber kapier ich noch nicht so ganz...
//Original von dir lautet es ja "_root.text1.htmlText = _root.DB_QUERY.n1;"
//Also n1 is eine Variable, die aus meiner PHP geladen wird, oder?
//Und diese Variable wird dann quasi aufm Root in die Variable text1 abgeändert, oder?
//Also bei mir ändert er quasi die Variable news1 ins root in die Variable news1, oder?

var controller = this.createEmptyMovieClip ("promotor2", 1); 
controller.onEnterFrame = function () { 
    var geladen = _root.DB_QUERY.getBytesLoaded (); 
    var total = _root.DB_QUERY.getBytesTotal (); 
    if (geladen && total) { 
        var ready = Math.round (geladen * 100 / total); 
    } 
    else { 
        var ready = 0; 
    } 
    _root.preloader.prozentanzeige = "Lade..." + ready + "%"; 
    _root.preloader.kbanzeige = Math.round (ready / 1024) + " kB von " + Math.round (total / 1024) + " kB"; 
    _root.preloader.ladebalken._xscale = ready; 
    if (ready == 100) { 
        delete this.onEnterFrame; 
    } 
}; 

};

Ok, ich gehe mal davon aus, dass ich beim Script oben irgendwas falsch verstanden und abgeändert habe......

Darf ich nochmal um Hilfe bitten

Grüsse, Christian
 
Hi -

der Witz an dem ganzen ist, das du ein Daten-Objekt anlegst, das genauso ein Objekt ist, wi zB ein MC - dieses Objekt nun empfängt ALLE aus PHP mit ECHO in url encodeter Form versendeten Objekte, so das du EGAL von wo aus in deinem Film mit dem Pfad zu deinem LoadVarsObjekt alle in diesem enthaltenen Variablen ansprechen kannst ..

B
 
Hallo

Ok, also ehrlichgesagt muss ich zugeben dass ich grad nicht so ganz kapiere, was du genau meinst *g*... Habe noch nie was programmiert... AS is das erste wo ich lerne....

Auf alle Fälle habe ich in der PHP-Datei nirgends ein ECHO-Befehl drin.... Meine PHP-Datei sieht genauso aus wie ich oben im ersten Beitrag geschrieben habe...

Ok, also so wie ich das jetzt verstanden habe lädt er die Variablen in Flash ein und egal wo ich mich gerade im Flash-File befinde, ich kann die Variablen direkt ansprechen....

Ok, allerdings haut das nicht so ganz hin bei mir...

Zuerst mal: Is das Script von mir richtig oder is da noch'n Fehler drin?

Weil wie gesagt, ich sehe immer nur ein leeres Textfeld, wo nix drin steht.... :-(

Grüsse, Chris
 
Ok, gaaaaaanz langsam:

in php schreibst du :
PHP:
<?php

$news1 = "Test test test";
$news2 = "Test test";
$news3 = "Test";
echo "&news1=$news1&&news2=$news2&&news3=$news3&"
?>

und in Flash schreibst du auf ein Frame im AS Fenster:

PHP:
_root.PHP_QUERY = new LoadVars ();
_root.wortpfad = "index.php"
_root.PHP_QUERY.sendAndLoad (_root.wortpfad, _root.PHP_QUERY, "POST");
_root.PHP_QUERY.onLoad = function () {
    _root.news1.htmlText = _root.PHP_QUERY.news1;
    _root.news2.htmlText = _root.PHP_QUERY.news2;
    _root.news3.htmlText = _root.PHP_QUERY.news3;
};

und, wenn ich nix übersehen habe, müsste es das gewesen sein, anstelle htmlText würde ich allerdings text schreiben, sowie deine Textfelder auf normal anstelle html stellen, weil du ja auch keine html tags verwendest....

der Rest des scriptes stellte einen preloader für die zu ladenden Daten dar, was jetzt ja erstmal nicht nötig ist...

Grüsse aus Fuerteventura

B
 
Hallo

Cool, jetzt funktioniert es...
Vielen Vielen Dank :)

Quasi hat nur der Echo-Befehl gefehlt....

Allerdings noch ganz kurz eine Frage, zum Verständnis, damit ich in Zukunft auch keine Probleme damit kriege ;-)

PHP:
//Hier erstelle ich eine Art MC (Oder Kontainer oder sowas...) wo nachher die Variablen hineinkommen...
_root.PHP_QUERY = new LoadVars ();
//Hier erstelle ich eine Variable "wortpfad" wo der Inhalt die URL der PHP-Datei ist... 
_root.wortpfad = "index.php" 
//Hier werden jetzt die Variablen geladen... 
//Nach dem Befehl in Klammern steht erst der Pfad (Holt er sich aus der Variablen)
//dann kommt wieder der MC wo oben erstellt wurde, oder?
//Aber wofür steht das "POST" Damit kann ich noch nix anfangen...
_root.PHP_QUERY.sendAndLoad (_root.wortpfad, _root.PHP_QUERY, "POST"); 
//Ok, hier sage ich Flash, dass es beim laden die ganzen Variablen in HTML-Text umwandelt, oder wofür ist der Befehl gut?
_root.PHP_QUERY.onLoad = function () { 
    _root.news1.htmlText = _root.PHP_QUERY.news1; 
    _root.news2.htmlText = _root.PHP_QUERY.news2; 
    _root.news3.htmlText = _root.PHP_QUERY.news3; 
};

Wäre spitze, wenn du mir das noch kurz erklären könntest, damit ich wenigstens jetzt alles kapiere ;-)

Auf alle Fälle nochmals tausend Dank :)

Grüsse, Chris
 
- POST ist der Modus in dem der Browser mit dem Server kommunizieren soll, es gibt auch noch GET, aber für Flash solltest du einfach immer nur POST nehmen.

- onLoad ist ein sogenannter Handler , der aktiv wird sobals das und das passiert, ind eisem Falle der Abschluss des Ladevorganges.....sinnvollerweise werden erst dann deine Textfelder gefüllt, wenn alle Daten da sind.

- es wird nix umgewandelt, du weist nur gewissen textfeldern gewisse Inhalte gewisser Variablen zu, damit diese sie anzeigen können....


Grüsse
B
 
Aha, ok, somit haben sich jetzt alle meine Fragen verabschiedet und ich habs soweit kapiert :)

Also dann nochmals vielen Dank :)

Grüsse ins (hoffentlich) sonnige Fuerteventura ;-) aus dem (grad) sonnigem Rosenheim ;-)

Christian
 

Neue Beiträge

Zurück