Zurück   Flashforum > Flash und Server > Flash und Datenbanken

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-02-2009, 13:26   #1 (permalink)
Neuer User
 
Benutzerbild von zarevok
 
Registriert seit: Jun 2004
Beiträge: 51
Ständiger(echtzeit) Austausch zwischen Flash und MySQL, wie?

Hallo Forum,

Mein Ziel ist es, im moment nur zu testzwecken, ein kleines "Spiel" zu machen, und zwar 2 Quadrate, die per Tastatur bewegt werden können, und zwar übers Internet.

2 Flash clienten auf 2 PCs, jeder sucht sich ein viereck aus und bewegt es, die Änderungen müssen natürlich gegenseitig sichtbar sein.
Also dachte ich mir, die Positionen des Quadrats in der Datenbank zu speichern und wieder abzufragen, die Reihenfolge wäre eigentlich folgende:
(Da später noch speicherungen möglich sein sollen, sollte auch bei diesem simplen beispiel erstmal geladen werden)

Flash ---fragt nach Position---> position.php
position.php ----Anfrage an Datenbank----> mysql
mysql ----schickt Position an ---> position.php
position.php ----schickt position an---> flash
Flash -----> setzt quadrat an Pos.
Flash ---neue Pos. an ---> position.php
position.php --- speichert neue position in ---> mysql

Und dann wiederholt sich das ganze, die scripts dafür sind folgende:

Actionscript:
Code:
//---Variablen erstellen
var PositionSend = new LoadVars();
var PositionGet = new LoadVars();

//---Hauptfunktion
onEnterFrame = function() {
	feld1.text = kreis._x;
		
	PositionSend.xpos = kreis._x;
	PositionSend.sendAndLoad("position.php", PositionGet,"GET");

	PositionGet.onLoad = function() {
		kreis._x = this.xposb;
		feld2.text = this.xposb;
	}		
}

Und hier der PHP-Code:
Code:
<?php	
		include ('connect.php');

		$getdata = "SELECT * FROM nam_testone";
		$resID = mysql_query($getdata, $linkID);		
		$data = mysql_fetch_array($resID,MYSQL_BOTH);

		if ($xpos!=0) {
		$posaendern = "UPDATE nam_testone SET x='$xpos' WHERE color='blue'";
		$poseintragen = mysql_query($posaendern, $linkID);

		}
		echo '&xposb=' . $data[1];
	?>

Was nun passiert wenn ich die Daten hochlade und die .swf ausführe ist am Anfang, dass der Würfel hin und her springt, zwischen seiner Position in Flash auf der Bühne (132) und dem Wert den ich in MySQL eingetragen habe (200)
und dann irgendwann bleibt er bei 132 stehen.

Wenn ich jetzt aktualisiere, dann ist der Würfel bei 132, und in mysql ist es logischer Weise auch so eingetragen.

Ich weiss nicht woran es liegen könnte, wisst ihr wie ich sowas umsetzen soll?
Also es soll halt ein ständiges speichern und laden sein.
Man denkt sich jetzt, es könnte ein einmaliges laden sein, und dann nurnoch ein speichern, bis die .swf datei wieder aufgerufen wird, aber das geht ja nicht weil der andere mitspieler am anderen PC ja die änderungen dauernd, also konstant, abfragen muss.

Bitte um Hilfe, ich versuch das jetzt seit 3 Tagen jeden Tag 6+ stunden.

MfG zarevok
zarevok ist offline   Mit Zitat antworten
Alt 22-02-2009, 15:18   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
Zitat:
Zitat von zarevok Beitrag anzeigen
Also es soll halt ein ständiges speichern und laden sein.
dein provider erschiesst dich, wenn du sowas machst ;-)

informiere dich mal über das thema: socket, socketserver, ..
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-02-2009, 18:11   #3 (permalink)
Neuer User
 
Benutzerbild von zarevok
 
Registriert seit: Jun 2004
Beiträge: 51
hmm ok,

Hab jetzt mal ein wenig gegoogelt, aber so ganz auf nen Nenner bin ich mit meinem Verständniss noch nicht gekommen...

Also sehe ich das richtig, es braucht einen Socket aufm Server der die "Verbindung" und den Datenaustausch managed, und "wer" genau macht das?

Hab da was gelesen, nämlich dass man mit einem PHP Script so einen Socket einrichten kann, hab aber auch gelesen, dass man spezielle Server dafür braucht.
Und diese Daten werden dann hin und her geschickt ohne die Datenbank anzusprechen? Bzw. nur zum speichern könnte man die ja ansprechen.

Seh ich das so etwa richtig?

Kann ich nicht alles in Textdateien auf dem Server schreiben, und die ständig abfragen und speichern? Oder ist das ebenfalls Tranfser-lastig?

Gibt es vieleicht irgendwo gute Einsteiger Tutorials für Sockets? Ich hab keine gefunden.

MfG zarevok

EDIT:
Hab grad das Tutorial auf www.jensschwarz.net gefunden, dass hab ich mir noch nicht ganz angeschaut, mach ich aber gleich.
Nur so vor ab, hab ich das richtig verstanden, dass eine XML Datei diese Socketfunktion übernehmen kann und somit praktisch das herumtauschen zwischen den Clients übernimmt?

Nochma EDIT:
Falls ich doch einen Server brauche, der irgendwas bestimmtes können muss, dann:
1. Was sollte der können?
2. Wie erfahr ich das?

Geändert von zarevok (22-02-2009 um 18:21 Uhr)
zarevok ist offline   Mit Zitat antworten
Alt 22-02-2009, 18:34   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
gibt es irgendwo das buch 'herztransplantation leicht gemacht, der hobbyratgeber'? :-)

gewisse aufgaben verlangen gewisse kenntnisse. und die hat man oder man eignet sich die an oder man lässt es bleiben. sorry, mehr varianten gibt es nicht - ich habe diese welt nicht gemacht.


ein 'normaler' server reagiert nur auf anfrage. wenn ständig alle telefonieren, dann bricht das leitungsnetzt zusammen. wenn alle autos gleichzeitig fahren, dann sind alle strassen verstopft und keiner fährt mehr.

bei einem socketserver (richtig gelesen, das ist ein spezielles programm. so wie man bei seinem provider mail- und php-grogrammieren- und datenbank- usw. -leistungen kaufen kann, so auch das. wer solche spiele betreibt hat seinen eigenen server. zum testen und lernen installiere sowas auf deinem rechner) meldet man sich an und erhält nur dann infos, wenn sich was geändert hat. also der socketserver ruft selbstständig bei dir an.


etwas vollkommen anderes ist es, was für eine aufgabe du deinen socketserver machen lässt. ob du daten aus einem file oder aus einer datenbank oder per zufallsgenerator erzeugst hat mit der kommunikation, der datenübertragung, absolut nichts zu tun. da ist also immer alles möglich.

[EDIT]
XML macht garnichts. XML ist, wie man daten übersichtlich aufschreiben kann. wäre genauso, als wenn du ein word-dokument ohne word benützen willst. das dokument kann garnicht. es wird immer ein programm benötigt.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (22-02-2009 um 18:38 Uhr)
hgseib 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 00:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele