Load til og fra php
Følgende eksempel udgøres af en php-fill og en actionscript-fil, og viser en tovejs kommunikation, hvor begge filer læser og skriver variabler til hinanden.
PHP-filen
Det medsendte navn læses, og benyttes i forbindelse med en dato til en string output.
Bemærk at php-filen alene, i linket nedenfor, ikke viser noget navn i den sætning den genererer, fordi navnet ikke bliver sendt via dette link, og derfor ikke bliver læst:
http://curlingthebrackets.com/flash/php/sendAndLoad.php.
<?php $name = $_POST["navn"]; $time = date("F jS, Y"); echo $name .", datoen er ". $time; ?>
FLASH-filen
http://curlingthebrackets.com/flash/php/sendAndLoad.html
brugerfladen
- Et tekstfelt med egenskaben ‘input’, så bruger kan skrive til php: send_txt.
- Et tekstfelt med egenskaben ‘dynamic’, så bruger kan læse fra php: vis_txt.
- En knap så bruger kan sende og modtage: sendBut.
Actionscriptet
Samme objekter som med load php-eksemplet:
URLLoader – loader tekst
URLRequest – kommunikerer med en ekstern fil
Derudover:
URLRequest skal bruge værdier på yderligere 2 properties, for at kunne sende: data og method.
URLVariables – Til overførsel af variabler mellem filer
// Hvis problemer med at teste lokalt af-kommenteres følgende med domænenavn //Security.allowDomain("curlingthebrackets.com"); var phpLoader:URLLoader = new URLLoader();// phploader var flashVars:URLVariables = new URLVariables();// (ind- og) ud-bakke for flash var phpReq:URLRequest=new URLRequest("http://curlingthebrackets.com/flash/php/sendAndLoad.php"); // php-filen // adressen phpReq.data=flashVars;// udbakken med i forsendelsen phpReq.method=URLRequestMethod.POST;// forsendelsens overførsels-metode sendBut.addEventListener(MouseEvent.CLICK, sendRequest); function sendRequest(e:MouseEvent) { flashVars.navn = send_txt.text; // output fra flash // php's input phpLoader.load(phpReq); } phpLoader.addEventListener(Event.COMPLETE, showRespond); function showRespond(e:Event) { vis_txt.text = e.target.data; // php's output gennem phploaderen
Flere variabler
I nedenstående eksempel sender flash et navn og en score-værdi til php (som man kunne tænke sig blev skrevet ind i en database) – og får tilbage fra php et bestemt navn og en score-værdi (Det kunne være en vinder fra databasen med højeste pointværdi.)
Det viste data i flash-filen er således fra php, mens det sendte ikke er synligt.
link til php:http://curlingthebrackets.com/flash/php/score.php
link til flash:http://curlingthebrackets.com/flash/php/score.html
Variabelpar specificeres fra flash med URLVariables-objektet og de tilknyttede variabelnavne hver især.
Variabelpar fra php outputtes i en string adskilt med “&” (uden mellemrum til højre for “&”).
Variabelpar til flash udtrækkes også med et URLVariables-objekt, og tilknyttede variabelnavne.
PHP-filen
<?php // $_REQUESTudtrækker alle variabler sendt med GET eller POST extract($_REQUEST); /* $user og $score er nu klar til at bruge (fx. i forbindelse med database transaktioner) */ $user="ib"; $score = 10000000; // Output: variabelpar med de nye verdier, og adskilt med "&" // Uden mellemrum mellem & og variabelnavn! echo "user={$user}&score={$score} "; ?>
Actionscriptet
Den udkommenterede blok udgør funktionaliteten til de sendte variabler, for at vise den adskilt fra de hentede variabler (af hensyn til overblikket).
var req:URLRequest=new URLRequest("http://curlingthebrackets.com/flash/php/score.php"); /* var variables:URLVariables = new URLVariables(); variables.score = String(Math.floor(Math.random()*10)); variables.user = "Anders And"; req.data = variables; req.method = URLRequestMethod.POST ; */ var loader:URLLoader = new URLLoader(); loader.load(req); loader.addEventListener(Event.COMPLETE, RESPONSE); function RESPONSE(evt:Event):void { //trace(loader.data); var variables:URLVariables=new URLVariables(loader.data); //trace(variables.user +" - "+ variables.score ); user.text=variables.user; score.text=variables.score; }
Created: 1 January 2011 • by admin
Categories: php •snippet
Comments: none yet • add one!
