kostenloser Webspace werbefrei: lima-city


Flash + Post

lima-cityForumDie eigene HomepageFlash und Silverlight

  1. Autor dieses Themas

    d******f

    Hallo Leute,
    ich muss eine Variable ("z") in Flash per Post in eine PHP-Datei bekommen.
    Die zu übertragende Variable ist z und an die zu schickende PHP-Datei heißt gewinn.php.

    Ich wäre euch über jeden Link und jede Hilfestellung, die mir weiterhilft Dankbar...
    MFG Marvin
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

  4. Autor dieses Themas

    d******f

    Und wie bekomme ich nun diesen Code:
    var request:URLRequest = new URLRequest ("rad.php");
    request.method = URLRequestMethod.POST;              
    var variables:URLVariables = new URLVariables();
    variables.zahl = z;      
    request.data = variables;
    var loader:URLLoader = new URLLoader (request);
    loader.addEventListener(Event.COMPLETE, onComplete);
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.load(request);

    In diesen Abschintt:
    if (_root.rad["feld" + z].hitTest (hit))
    				{
    					trace (["feld" + z]);
    					treffertext.Text = "Treffer in Feld " + z;
    					i = false;
    					break;
    				}

    hinein?

    Ich habe es so versucht, doch tut er nichts ... das Rad dreht sich (meine Anwendung) und dann passiert nichts weiter.
    if (_root.rad["feld" + z].hitTest (hit))
    				{
    					var request:URLRequest = new URLRequest ("rad.php");
    request.method = URLRequestMethod.POST;              
    var variables:URLVariables = new URLVariables();
    variables.zahl = "" + z;      
    request.data = variables;
    var loader:URLLoader = new URLLoader (request);
    loader.addEventListener(Event.COMPLETE, onComplete);
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.load(request);
    					i = false;
    					break;
    				}

    Bitte Helft mir ich bin auf dem Gebiet Flash ein Noob und verstehe den Sinn des Codes ehrlich gesagt nicht.
  5. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Keine Fehlermeldung? :confused:

    Du machst das aber auch schon auf einem lokalen Server, nicht wahr? Nicht in irgendeinem Ordner auf der Festplatte ...
  6. Autor dieses Themas

    d******f

    nein nicht auf der Festplatte^^
    Und nochmals nein, es gibt keine Fehlermeldung ... es wird einfach nichts ausgeführt.

    [EDIT:]Mein momentaner Code sieht so aus:
    this.onEnterFrame = function ()
    {
    	if (iDreh > 0)
    	{
    		rad._rotation += iDreh;
    		iDreh = iDreh - 2;
    	}
    	else
    	{
    		if (i == true)
    		{
    			for (z = 0; z < 21; z++)
    			{
    
    var variables:URLVariables = new URLVariables();
    variables.score = z;
    
    var urlRequest:URLRequest = new URLRequest(rad.php);
    urlRequest.method = URLRequestMethod.POST;
    urlRequest.data = variables;
    
    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.load(urlRequest);
    
    					i = false;
    					break;
    
    			}
    		}
    	}
    };
    bt.onRelease = function ()
    {
    	iDreh = 60 + random (30);
    	i = true;
    };


    Beitrag zuletzt geändert: 12.2.2011 9:50:15 von das-dorf
  7. Hallo :wave:

    Da die Datei an die gepostet werden soll "gewinn.php" heißt, dachte ich mir ich weise mal darauf hin, dass POST-Parameter modifiziert werden können -> Wenn das ein Spiel ist kann gecheatet werden.
    Ich kenne mich nicht mit Flash aus, aber so hab ich schon bei so manchen Flashgames 999999999999999 Punkte bekommen :biggrin:

    mfg :wave:
  8. das-dorf schrieb:
    [EDIT:]Mein momentaner Code sieht so aus:
    this.onEnterFrame = function ()
    {
    	if (iDreh > 0)
    	{
    		rad._rotation += iDreh;
    		iDreh = iDreh - 2;
    	}
    	else
    	{
    		if (i == true)
    		{
    			for (z = 0; z < 21; z++)
    			{
    
    var variables:URLVariables = new URLVariables();
    variables.score = z;
    
    var urlRequest:URLRequest = new URLRequest(rad.php);
    urlRequest.method = URLRequestMethod.POST;
    urlRequest.data = variables;
    
    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.load(urlRequest);
    
    					i = false;
    					break;
    
    			}
    		}
    	}
    };
    bt.onRelease = function ()
    {
    	iDreh = 60 + random (30);
    	i = true;
    };



    Willst du die variablen versenden wenn du den button loslässt?
    Dann erledige das verschicken doch bitte auch in onRelease und mahc nciht solchen enterFrame Quatsch.

    Dein Ansatz ergibt keinerlei Sinn: du zählst von 0 bis 20 hoch und schickst entsprechend 21 requests los, mit festen Werten.

    URLRequest ist AS3. Welche Sprache benutzt du?

    Was "z" ist? Variablennamen haben einen Sinn. Ich denke nciht das du jedesmal die gleichen Werte verschicken möchtest.
  9. Autor dieses Themas

    d******f

    Dieser "enterquatsch" hat den Sinn, das wenn die Animation zu ende ist ein Ergebnis feststeht und dieses gesendet werden soll.
    Die Variable "z" ist auch die gleiche! Die Variable sagt mir (und dem Post --> PHP-script) was für ein Feld getroffen wurde und das PHP-Script führt diese Aktion(je nach Feldnummer) aus. Also muss z so bleiben und dieser "enterFrame" Quatsch muss auch bleiben.
    Die Zahl z bestimmt nun mal wie lange/weit die Animation gehen soll und welches Feld es ist und damit auch die Aktion in PHP.

    Wenn ich URLRequest genutzt habe, dann werde ich ja auch AS3 nutzen oder?

    Beitrag zuletzt geändert: 14.2.2011 7:12:07 von das-dorf
  10. sonok

    Moderator Kostenloser Webspace von sonok

    sonok hat kostenlosen Webspace.

    Naja, für mich ergibt all das auch keinen Sinn -

    wenn i wahr ist

    setze z auf null und zähle bis 20

    verschicke z bei jedem zähldurchgang an die php (also bei z == 0, bei z == 1, bei z == 2, bei z== 3 usw usf)

    beende die schleife nach dem ersten durchgang (break;)



    Wenn Du z vor dem Verschicken immer auf 0 setzt, dann bekommst Du überhaupt keine information.

    Naja, ich würde vorschlagen, du baust ein paar trace(); ein um zu sehen, was eigentlich passiert in dem code.
    Was das verschicken der Variable betrifft (also die eigentliche Frage) - mach ein neues Dokument und versuch mal, nur eine variable an php zu übergeben (ohne irgendwelchen code drum herum). Wenn das klappt, kannst Du den Teil in den Spielecode (?) reinbasteln.

    edit
    Und was die Frage vom lecker Essen nach der AS-Version betrifft - http://www.noobflash.com/actionscript-30-onenterframe/
    AS2 und AS3 lassen sich nicht mixen ...

    Beitrag zuletzt geändert: 14.2.2011 12:09:32 von sonok
  11. das-dorf schrieb:
    Dieser "enterquatsch" hat den Sinn, das wenn die Animation zu ende ist ein Ergebnis feststeht und dieses gesendet werden soll.
    Die Variable "z" ist auch die gleiche! Die Variable sagt mir (und dem Post --> PHP-script) was für ein Feld getroffen wurde und das PHP-Script führt diese Aktion(je nach Feldnummer) aus. Also muss z so bleiben und dieser "enterFrame" Quatsch muss auch bleiben.
    Die Zahl z bestimmt nun mal wie lange/weit die Animation gehen soll und welches Feld es ist und damit auch die Aktion in PHP.

    verstehe ich nicht.

    das-dorf schrieb:
    Wenn ich URLRequest genutzt habe, dann werde ich ja auch AS3 nutzen oder?

    Nein, weil der erste code den du gepostet hast AS2 war.

    Also mal ganz langsam von Anfang an:
    - Welche Sprache nutzt du?
    Ich vermute du nutzt die Adobe oder Macromedia "Flash". Bis version 8 können die von Haus aus nur AS2 (AS2 ist aber kacke), ab CS3 geht dann beides, also AS3 und AS2.

    - Was soll versendet werden? "z"
    Wie Sonok und ich schon schrieben, schickst du die Zahlen 0 bis 20 an deinen Server, ich denke nicht das du das möchtest.
    Und verwende bitte sinnvolle variablennamen.

    - Wann soll das versendet werden? "Wenn die Animation beendet ist."

    Wenn du Animationen mittels Code erstellen willst, nutzt du eine fertige tweening engine.
    TweenMax, TweenLite, Tweener, ... um nur einige zu nennen. Wobei diese sehr einfach in der Benutzung sind.
    Hier ein Video das alles beinhaltet was du möchtest. Für AS2 sind nur wenige Modifikationen vorzunehmen.
    http://gotoandlearn.com/play.php?id=45

    Mit EnterFrame erfindest du sinnloser Weise das Rad jedesmal neu.

    Damit drehst du dein Rad mit entsprechendem Easing (= abbremsen, was du ja tun möchtest, da deine Drehbeschleunigung = -2 ist.) und kannst auch festlegen, was passieren soll, wenn der Spaß fertig ist.


    Beantworte uns (und dir) bitte diese Fragen und das Problem sollte sich in Luft auflösen.

    =)

    Beitrag zuletzt geändert: 14.2.2011 12:57:54 von milchreis
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!