Flashhilfe.de - Flash Community

per variable externe txt ansprechen und wiedergebe [Flash 8]

 


AntwortenRegistrieren Seite1  

Dunraven#1
Benutzerbild von Dunraven
Beiträge: 23
Registriert: Aug 2007

19.04.2008, 08:10

Guten Morgen!
Bin langsam am verzweifeln!!
Habe folgendes Probem:
Am Server liegen txt dateien die einige variablen gespeichert haben. (zB. 1.txt, 2.txt 3.txt)
Jetzt möchte ich in Flash in ein Eingabefeld (Instanz: tg_txt, Var: tgVar) zB. "1" reinschreiben. Mit dem betätigen des Buttons senden_btn soll nun die Variable "1" (die ich ins eingabefeld geschrieben habe) an php übergeben werden. Php soll nun "1.txt" öffnen und die gespeicherten Variablen an flash zurücksenden.

Zur Info: Dies soll ein Online Taucher-Logbuch werden in dem Tauchgänge gespeichert werden. 1.txt enthält variablen des 1 tauchganges, 2.txt enthält variablen des 2. tauchganges usw

Hier das AS:

senden_btn.onRollOver = function() {
this.t_txt.textColor = 0xFFFFFF;
};
senden_btn.onRollOut = function() {
this.t_txt.textColor = 0xFF6600;
};
senden_btn.onRelease = senden_btn.onReleaseOutside = function () {
//Funktion aufrufen
formSenden();

};
formSenden = function () {
//Alle Fehler auf 0 setzen
var fehler:Number = 0;
//führende Leerzeichen entfernen
leerZeichenWeg(tg_txt, tgVar);
//Textfeld für Angaben überprüfen
if (tg_txt.text.length<1) {
status_txt.textColor = "0xCCCCCC";
status_txt.text = "Bitte eine Tauchgangsnummer eingeben!";
fehler++;
}
if (fehler == 0) {
//Wenn es keine Fehler gibt
//mit dem Senden an PHP beginnen
//
//Die beiden folgenden Variablen
//werden zum auswerten benötigt
_global.abwarten = false;
_global.erfolgreich = false;
//
//Hier eine kleine Funktion
//wie lange wir auf eine Antwort
//von PHP warten wollen
setTimeout(function () {
//Sobald 3 Sekunden vorbei sind
//wird die Funktion abwartenVorbei()
//aufgerufen und abwarten auf true gesetzt
abwarten = true;
abwartenVorbei();
}, 3000);
//Der Text während des Wartens
status_txt.textColor = "0xCCCCCC";
status_txt.text = "Bitte warten, Tauchgangsdaten werden gelesen...";
//
//neue Objekt von LoadVars anlegen
var export:LoadVars = new LoadVars();
//
//Sicherheitsabfrage an PHP, ob Daten auch wirklich von Flash kommen
export.anfrageVonFlash = 1;
//Übergabe der Werte aus den Textfeldern
export.flaTg = tgVar;
//
var anPHP:LoadVars = new LoadVars();
//Übergabe an die PHP Datei schreiben.php
export.sendAndLoad("tglesen.php?", anPHP, "POST");
anPHP.onLoad = function(erfolg:Boolean) {
if (erfolg) {
erfolgreich = true;
//Wenn PHP die Variable eintragOK mit dem Wert 1 zurück sendet
//dann war alles OK
if (anPHP.eintragOK == 1) {
status_txt.textColor = "0xCCCCCC";
status_txt.text = "Tauchgang erfolgreich geladen!";
}
}
};
//ENDE vanPHP.onLoad = function(erfolg:Boolean) {
}
//ENDE if (fehler == 0) {
};
//Die Funktion zur Kontrolle
abwartenVorbei = function () {
//Wenn die Wartezeit vorbei ist
//und von PHP nix zurück kam
//dann ist was faul
if (abwarten == true && erfolgreich == false) {
status_txt.textColor = "0xCCCCCC";
status_txt.text = "Ausführende Datei kann Tauchgangsdaten nicht lesen!";
}
};



Und hier das Php skript "tglesen.php"

<?php
//Funktioniert nur, wenn von Flash gesendet
//klein bischen Sicherheit
//Hier muß aber noch wesentlich mehr an Sicherheit gemacht werden
if(isset($_POST[anfrageVonFlash])){

//Alle gesendeten POST Variablen umwandeln
while (list($feld, $inhalt) = each ($_POST)) {
$inhalt = trim($inhalt);
//Tags entfernen
//klein bischen Sicherheit
$inhalt = strip_tags($inhalt);
${"var_".$feld} = $inhalt;
}

$textdatei = fopen("data/logs/".$var_flaTg.".txt","r");
$lesen = fgets ($textdatei);
echo $lesen;
fclose ($textdatei);
echo "&eintragOK=1&";
}
?>

BuZZ-T#2
Benutzerbild von BuZZ-T
Beiträge: 124
Wohnort: Nähe FFM
Registriert: Mar 2006

19.04.2008, 11:55

Hey,

den Zwischenschritt über PHP kannst du dir eigentlich zum einlesen der Dateien sparen. Die txt Dateien kannst du mit loadVariables in deine Flashdatei laden.

Such mal in der Flash Hilfe nach dem Punkt loadVariables-Funktion. Da ist ein Beispiel wie man die txt Datei direkt in Flash einließt.

MfG BuZZ-T

There are living 10 types people on our earth  -   
those who understand binary and those who don't
Dunraven#3
Benutzerbild von Dunraven
Beiträge: 23
Registriert: Aug 2007

Themenautor/in

19.04.2008, 12:15

Hey!
Danke für deine rasche Hilfe, werd es gleich versuchen!

Dunraven#4
Benutzerbild von Dunraven
Beiträge: 23
Registriert: Aug 2007

Themenautor/in

19.04.2008, 19:40

Also irgendwie stehe ich jetzt an. Wie kann ich mit loadvariables einen inhalt des eingabefeldes einlesen und durch diesen Inhalt die Variable bestimmen

Wenn ich in das Eingabefeld "1" schreibe, soll "1.txt" ausgelesen werden, wenn ich "12" reinschreibe soll "12.txt" ausgelesen werden.

In diesem Ordner liegen jetzt ca 50 txt dateien, welche durch das eingabefeld angesprochen werden sollen.

BuZZ-T#5
Benutzerbild von BuZZ-T
Beiträge: 124
Wohnort: Nähe FFM
Registriert: Mar 2006

19.04.2008, 21:29

Hey,

damit das Funktioniert muss deine Textdatei ein bestimmtes Format haben:

varName1=Wert1&varName2=Wert2

Wenn du das nun mit einem Textfeld verbinden willst erstellst du ein Eingabe Textfeld. Dem gibst du einen Instanznamen. Zb. beitragsid.

So gehts mit loadVariables:
ActionScript:
1
2
3
4
5
6
senden_btn.onRelease = senden_btn.onReleaseOutside = function () {
dateiname = beitragsid.text + ".txt";
_root.loadVariables(dateiname);
trace("Variable1: "+varName1);
trace("Variable2: "+varName2);
}


Für das Web ist die Verwendungen der loadVars Klasse besser:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var loadVars:LoadVars = new LoadVars();
dateiname = beitragsid.text + ".txt";
_root.loadVars.load(dateiname);

loadVars.onLoad = function( success:Boolean ):Void // Wird ausgelöst wenn die Textdatei vollständig geladen ist.
{
  if(success)
{
trace("Variable1: "+varName1);
trace("Variable2: "+varName2);
}

  else {
        trace("Fehler beim laden der Datei");
}
}


Die Scripts sind nicht getestet. Hab gerade kein Flash zur Verfügung.

MfG BuZZ-T
There are living 10 types people on our earth  -   
those who understand binary and those who don't
Geändert von BuZZ-T am 19.04.08 um 21:31 Uhr
Dunraven#6
Benutzerbild von Dunraven
Beiträge: 23
Registriert: Aug 2007

Themenautor/in

21.04.2008, 12:16

Danke sehr! Es funktioniert!!


AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de