| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 10
| Variabeln von Standaloneplayer an Server schicken
Hallo, ich möchte gerne ein Spiel von CD-Rom als Standaloneplayer erstellen. Die jeweilige Punktzahl soll dann an einen Server geschickt und per PHP gespeichert werden. Als Antowrt soll dann vom Server sowas wie "ok, ist gespeichert", oder "nee, geht grad nicht" kommen. Ich habe nun schon einiges gelesen und probiert und bekomme es zumindest schonmal hin, daß das Spiel eine Antwort vom Server bekommt. Durch die Sicherheitsrestriktionen ist das ja shon nicht "mal eben" getan. Ich habe dazu folgendes veranstaltet: 1. master.swf (das game) sieht folgender maßen aus: Code: punkte= 100;
loadMovieNum("http://www.meinHighscoreServer.de/slave.swf",1); 2. die slave.swf Code: vars = new LoadVars();
vars.onLoad = function() {
_root.txt.text = this.test;
_level0.output.text = this.test;
};
vars.load("http://www.meinHighscoreServer.de/test.php");
_root.txt.text = "loading..."; _root.txt ist ein Textfeld innerhalb der slave.swf (Antowrt erscheint) _level0.output ist ein Textfeld innerhalb der master.swf (Antwort erscheint nicht) 3. test.php Code: <?php echo "test=Hallo"; ?> nun habe ich aber noch keine Punkte zum Server geschickt und weiß auch nicht, wie ich das anstellen soll. Die Punkte liegen in der master.swf (als StandalonePlayer z.b. auf CD). ich kann allerdings die variable "punkte" nicht in der slave.swf auslesen, um sie weiterzuschicken...ebensowenig kann ich in der master.swf nicht auf die Antwort in slave.swf zugreifen, grrrrrrrrrrrrrrr. ich kann in der slave.swf nichts inder Art wie System.security.allowInsecureDomain("tja.hmmm.de") packen, weil es keine einzelne Domain gibt, von der aus zugegriffen werden soll. Die master.swf soll ja mal auf ettlichen cds irgendwo auf der welt sein und immer local ausgefürht werden. also nix domain :-( ich habe alles sowohl lokal als auch mit 2 servern getestet. das egebnis ist immer gleich: geht nicht :-( nur die Antwort aus der test.php erscheint in der slave.swf weiß jemand, was ich anstellen muß, damit ich meine varialen versenden und auch drauf zugreifen kann? jeder tip ist willkommen...vielleicht gehts ja irgendwie mit ZINC (www.multidmedia.com)??? aber wenn, wie? noch habe ich keinen blassen schimmer. Geändert von yayoko (15-03-2007 um 11:51 Uhr) |
| | |
| | #2 (permalink) |
| Alter User Registriert seit: Mar 2005 Ort: Ex Exil-Leipziger
Beiträge: 325
|
Hi - das Prinzip mit master und slave ist ein sehr interessanter Ansatz - hatte auch schon mal probiert lokale Daten zu einem Server zu schicken und hatte es dann spaeter verworfen... ...vielleicht werd ich's ja nochmal probieren mit Hilfe deines Ansatzes ![]() Zu deinem Problem Vielleicht koenntest du URL-variablen beim Aufruf der slave SWF nutzen - weiss bloss nicht ob das wegen diverser securitysettings (firewall) funktioniert & moeglich ist: loadMovieNum("http://www.meinHighscoreServer.de/slave.swf?punkte=114509",1); Wuerde mich freuen zu hoeren ob's klappt... Ciao Wommi |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 10
|
bingo :-) genau daran habe ich die letzten stunden auch gesessen und siehe da: so gehts. ha, wäre ja auch gelacht gewesen, wenn es gar keine möglichkeit gäbe. übrigens alles ohne System.security.allowDomain() in der Slave... oder einer crossdomain.xml auf dem entfernten server... allerdings gibt es direkt mal ein neues rätsel :-) und zwar betrifft das die slave.swf. der aufruft funktioniert (liefert aber ja keine antwort): Code: vars.send("http://www.meinHighscoreServer.de/test.php", "blank_", "POST"); Code: vars.sendAndLoad("http://www.meinHighscoreServer.de/test.php", antwort, "POST"); Code: vars.load("http://www.cigarworld24.de/test.php"); in der slave.swf muß hier irgendwas dafür sorgen daß das onLoad-Event nicht ausgeführt wird (bei "sendAndLoad", bei "load" gehts ja)...was zum Geier ist Flash eigentlich für eine Zicke? Anständige (oder überhaupt irgendwelche) Fehlermeldungen wären schon ein riesen Applaus wert... irgendwelche ideen? klar, die vars wieder hintendranklatschen, wie gehabt, aber vielleicht gibts auch zur abwechlung auch mal eine "saubere" lösung...achso: kann mir jemand vielleicht erklären, wozu dieser "security"-kram gut sein soll? Geändert von yayoko (15-03-2007 um 14:38 Uhr) |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 10
|
nachtrag: ok, das problem mit sendAndLoad hat sich erledigt. es war mein fehler. ich hatte das falsche LoadVars-Objekt mit dem onLoad-Event verknüpft. die antwort vom server kommt also an. :-) hier nochmal alles komplett, so wie's funktioniert: 1. master.swf Code: punkte = 100;
loadMovieNum("http://www.meinHighscoreServer.de/slave.swf?getvar="+punkte,1); Code: vars = new LoadVars();
vars.sende = getvar; // getvar wird von master.swf per GET übergeben
recive = new LoadVars();
recive.onLoad = function(ok) {
if (ok)
{
_root.txt.text = this.test;
}
else
{
_root.txt.text = "Fehler";
}
};
vars.sendAndLoad("http://www.meinHighscoreServer.de/test.php", recive, "GET");
_root.txt.text = "lade..."; Code: if (isset($_GET['sende']))
echo("test=GET: ".$_GET['sende']);
else
{
if (isset($_POST['sende']))
echo ("test=POST: ".$_POST['sende']);
else
echo("test=keine Vars.");
} die slave.swf legst du auf den "meinHighsoreServer". das PHP-Script auch auf den highScoreServer (ich habs im selben verzeichnis) die serverantwort kommt in der slave.swf an. da sie ja per loadMovie in die master includet wurde, wird sie auch dort angezeigt. das letzte problem, welches ich nun noch lösen will ist: wie kann ich die antwort (die in der slave.swf ankommt) in der master.swf weiterverarbeiten? mit _level1.recive.test jedet nicht, klar: security geht vor ;-) viele grüße... p.s. sollte es nicht laufen wie gewünscht, check deine firewall... Geändert von yayoko (15-03-2007 um 15:16 Uhr) |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Aug 2006
Beiträge: 10
|
Partytime ![]() wird langsam ein richtig asozial gefrickeltes teil, tut aber nun brav was ich befehle, great fun! das letzte problem, die antwort des slave.swf im master.swf verfügbar zu machen, ist jetzt auch gelöst: schweinkram, aber egal :-) master.swf: 1. frame (wie gehabt) punkte = 100; loadMovieNum("http://www.meinHighsoreServer.de/slave.swf?getvar="+punkte,1); 2. frame if (_level1.recive.test != undefined) { _level0.output.text = _level1.recive.test; stop(); } 3. frame gotoAndPlay(_currentframe-1); jaja, ist nicht der königsweg. aber, hey :-) soll mal jemand behaupten "geht nicht!". da lach ich jetzt drüber. (naja, zumindest lokal, online mit 2 servern wills nicht, aber das ist mir jetzt auch pipiegal) Geändert von yayoko (15-03-2007 um 16:02 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |