Textfeldladen aus externer Datei....

Jupp, gefällt mir. Habs ausprobiert und anfangs einige Probleme mit dem Anzeigen von HTML-Tags gehabt, aber nun gehts ganz gut, dank:

PHP:
var lv = new LoadVars();
  
  lv.onLoad = function() {
  	TextFeld.html = true;
  	TextFeld.htmlText = this.inhalt;
  }
  
  lv.load("inhaltfile.txt");

Mal ne andere Frage zu den Externen: Habe hier einen Thread gefunden, bei dem wohl realisiert wurde, einen PHP Datei in ein Textfeld zu laden. Fand die Idee toll und habs ausprobiert, aber leider ohne Erfolg. Hätte es gut gebrauchen können.
Was haltet Ihr davon, wäre es theoretisch möglich?
Da jedoch laut einigen Posts die Darstellung von "file.php" ansich nicht möglich ist, komme ich nun durcheinander. Muß ich immer eine Variable im AS und PHP angeben, die dann jeweils ausgelesen wird?

Bin verwirrt!:confused: Vielleicht weiß jemand Rat! *blinzel*@Datic oder @Basileus

LG
benchmark
 
Hi,

nö, Du kannst Dateien jeder Endung als Ziel angeben (korrigiert mich, wenn ich falsch liege).

Mit PHP-Scripten verhält es sich so:
PHP:
// Senden:
lv.var1 = "bla";
lv.var2 = "blubb"
Nach dem Senden mit send oder sendAndLoad an ein PHP-Script kannst Du dort die Variablen
PHP:
$var1 = $_POST["var1"];
$var2 = $_POST["var2"];
auslesen.

Umgekehrt wird mit LoadVars.load (bzw. sendAndLoad) alles empfangen, was vom PHP-Script mit echo() ausgegeben wurde:
PHP:
echo("var1=bla&var2=blubb");

Gruß
.
 
Hi,

wenn der Server kein php-Parser hat ist das kein Problem. :D

Falls doch, und das ist glaube ich Deine Absicht, kannst du mit hilfe einer zweiten php-Seite, die Ziel-php-Seite auslesen und an Flash wie übergeben.

PHP:
<?
$inhalt = fopen("ziel.php","r");
while(!feof($inhalt)){
   $str = $str.fgets($inhalt,200);
}
echo "myVar:".$str; 
?>

und die lädst Du dann in Deinen Film rein.


mfg

beta

edit: hmpf war wohl wieder zu spät :D
 
Hey,

danke für die Hinweise. Hatte deshalb nachgefragt, weil ich wirklich kaum Ahnung von PHP habe und es mir sparen wollte, der PHP Datei beizubringen, die Einträge in ReverseMode in eine TXT zu schreiben.
Mit der Möglichkeit, Flash die zweite PHP Datei auslesen zu lassen, die nur die Einträge anzeigt, und zwar in richtiger Reihenfolge, da im Code schon geschrieben, hätte ich mir das nämlich sparen können.
Jetzt habe ich es geschafft, der ersten PHP Datei zu sagen, sie soll zwei TXT Dateien erstellen, eine für sich selber zum auslesen, und eine weitere, die schon den neuesten Eintrag oben einfügt mit einem "inhalt=" davor, die dann wiederum von Flash ausgelesen wird.

Puh!:)

Jedoch, um mir beim nächsten Mal nicht schon wieder soviele Stunden zwischen 0 und 7 Uhr morgens um die Ohren zu hauen, würde ich gerne mal mehr über die tolle Option erfahren, Flash direkt eine Variable zu geben, die dann direkt die PHP ausliest.

Im Code von betamorph steht:
PHP:
  <?
  ...
  echo "myVar:".$str;
  ?>

Ist denn "myVar:" eine feste Variable der PHP Datei? Nach dem Motto:
PHP:
 $myVar = $inhalt;
So ganz steige ich noch nicht durch, leider. Vielleicht hat ja einer von Euch die Lust, mir das genauer zu erklären, wäre sehr dankbar. Es würde viele Möglichkeiten eröffnen, was die Kommunikation von Flash und PHP betrifft.

Viele Grüße
benchmark
 
Hi,

ich muss zugeben, ich verstehe nicht ganz was Du meinst.

Mal ein Beispiel:

Ich habe folgende PHP-Datei:
PHP:
<?
if (isset($_POST["eintrag"])) {
    // POSTDATA in Variable speichern:
    $eintrag = $_POST["eintrag"];
    echo("zurueck=".$eintrag." ist angekommen");
} else {
   echo("zurueck=Keine Daten angekommen");
}
?>

Nun rufe ich dieses Script mit AS auf:
PHP:
var lv = new LoadVars();
lv.eintrag = "Hallo Welt";
lv.onLoad = function(success) {
    if (success && this.zurueck != undefined) {
        meinTextfeld.text = this.zurueck;
    }
}
lv.sendAndLoad("meinscript.php", lv, "POST");

Was nun passiert ist folgendes: Flash sendet die Variable "eintrag" mit dem Wert "Hallo Welt" via POST an den Server. Dort angekommen wird folgendes String per echo ausgegeben
Code:
zurueck=Hallo Welt ist angekommen
und zurück an Flash gesendet, wo er in einem Textfeld angezeigt wird. Es wird keine neue Seite aufgerufen.

Ich habe das Gefühl, Du hast etwas völlig anderes gemeint .- vielleicht kannst Du Dein Problem noch einmal genauer erklären.

Gruß
.
 
Nun, ja, ich denke so geht es, wenn man aus einer Flashdatei heraus etwas in eine PHP schreibt und dann wieder mit Flash ausliest.

Mein Ding war jedoch folgendes:
Ich wollte Newsbeiträge nicht immer von Hand in eine TXT File schreiben, die dann von Flash in ein Textfeld geladen wird, sondern wollte, dass das ohne mein Zutun passiert. Also habe ich eine PHP Datei erstellt, in die die News geschrieben werden. An die PHP kommen nur berechtigte User. Gespeichert werden diese in zwei TXT Files. Eine für die PHP Datei selber und deren Echo und eine weitere TXT, in der die Beiträge mit dem neuesten Eintrag zuerst geschrieben werden. Diese TXT File wird nun von Flash in ein Textfeld geladen und ausgegeben. Somit habe ich mir die Arbeit vereinfacht, nun gut, wenn man die Zeit berechnet, bis das alles fnktionierte, hätte ich wahrscheinlich noch Jahre alles manuell eintragen können, bis ich auf diesen Zeitaufwand gekommen wäre. Nichtsdestotrotz funktionierts nun so und ich bin glücklich.

Worum es mir ging:
Es dauerte Ewigkeiten, bis ich der PHP Datei (news.php) beigebracht habe, eine TXTFile rückwärts zu beschreiben. Das wollte ich mir sparen, indem eine zweite PHP (read.php) die erste ausliest, also im Prinzip nur mit echo. Diese hätte ich dann an Flash übergeben und in ein Textfeld auslesen lassen. (Der Code in der PHP die neuesten Einträge als erstes darzustellen war ja vorhanden) So hätte ich mir den Akt mit der rückwärts schreibenden TXT File sparen können, weil ich eben wenig von PHP verstehe.

Die Frage ist nun, wenn ich den Einträgen im echo der read.php eine klare Definition gebe, kann ich diese dann an Flash, bzw. durch ein Textfeld, auslesen lassen? Das habe ich nicht kapiert und ich hoffe ich konnte mich klar ausdrücken. Sorry, falls es Mißverständnisse gab. Außerdem weiß ich nicht, ob das so überhaupt funktionieren würde. Ist nur ein Hirngespinnst von mir, wodurch ich mir ein Umstellen des PHP Codes sparen wollte.

Danke für die Mühe datic!

LG
benchmark
 
Hi,

ich habe immer noch nicht ganz genau verstanden, was Du willst, aber ich habe eine Ahnung...

Generell: Das Schreiben der neuesten Einträge an den Anfang einer Textdatei ist eigentlich nicht weiter schwierig:

- Textdatei einlesen und in einem String speichern

- Neuen Eintrag und die eingelesene Datei zusammensetzen

- Alles zusammen unter dem gleichen Dateinamen schreiben

- (Dabei kann man die neue Liste auch gleich per echo mit ausgeben, damit sie in Flash ohne weiteren Scriptaufruf angezeigt wird)

Wenn Du gezielt auf einzelne Einträge zugreifen willst (oder z.B. auch was umsortieren), empfehle ich Dir (sofern Du keine Datenbank verwenden willst) eine XML-Struktur. Das XML-Objekt in Flash funktioniert ähnlich wie das LoadVars-Objekt, mit dem Unterschied, dass es automatisch einen Objektbaum erzeugt, der sich komfortabel manipulieren lässt.

In diesem Thread ging es um etwas ähnliches (nämlich das Verwalten von Newseinträgen mit einem Flashclient).

Gruß
.
 
Hey Datic,

schönes neues Bild haste da. Danke für dein Reply. Ich hab jetzt was neues probiert, aber irgendwie kriege ich das nicht hin. Ich habe eine PHP (reverse.php) mit folgendem Code:

PHP:
   <?
   $filename = "entry.txt";
   echo 'zurueck=';
   
     $array = file($filename);
     $i = sizeof($array);
     while ($i--) {
   		  echo trim($array[$i]) . "<br>\n";
   }
   ?>

Nun, die stellt lecker alle Einträge dar, wenn ich sie aufrufe. Plus dem beliebten "zurueck=" für Flash.
In der Flashdatei steht dank deiner Angaben:

PHP:
   var lv = new LoadVars();
   lv.onLoad = function(geladen) {
   	if (geladen) {
   		textfeld.text = this.zurueck; 	   
   	}
   }
   lv.load("reverse.php", lv, "POST");

Leider bekomme ich aber die schöne "undefined" Ausgabe, wenn ich die Flashdatei aufrufe. Uah! ich fühle mich langsam auch schon undefined. Meinen Instanznamen "textfeld" habe ich vergeben. Der AS steht im ersten Frame erste Ebene, das Textfeld steht ebenfalls im ersten Frame, aber zweite Ebene. Mmmh, das habe ich jetzt noch nicht ausprobiert, die hin und her zu setzen. Sollte es etwa daran liegen? Nee, glaube ich nicht, durch loadVars kann das doch eigentlich nicht sein.

Vielleicht kannst du mir helfen. Es ist schon wieder früh am Morgen und ich werde jetzt erstmal verbittert aufgeben und ins Bett gehen.

LG und einen schönen Tag,
benchmark

PS: Arbeite mit MX, habe ich glaube noch nie erwähnt ;-)
 
Hi,

die Syntax von LoadVars.load() lautet:
PHP:
lv.load("dateiname");
Die Parameter, die Du vergeben hast, gehören zu LoadVars.sendAndLoad().

Gruß

P.S.:mad:Bildchen: schon klar, Zombies usw. sind etwas pubertär, aber irgendwie gefiel es mir. :p
.
 
Hey Datic,

hab die Parameter rausgenommen, aber leider keine Änderung damit bewirkt. Bekomme immernoch "undefined" als Ausgabe. Liegt vielleicht doch daran, dass das nur eine Einframedatei ist. Werds mal weiter probieren.

Wenn Dir noch was einfällt, gerne!:)

@Bild: Ne, finds echt cool und Zombies und die ganzen alten Kult-B-Movies ala EvilDead etc. sind doch nun wirklich einzigartig. Aus diesem Grund bleibe ich auch dabei, cooles Bild.

LG
benchmark
 

Neue Beiträge

Zurück