Sziasztok!
SŰRGŐS segítségre szorulok. Adott egy más által írt php script, amivel kommunikálnom kellene Actionscript 3 alól. Egész pontosan két db változót (uid, uname) kellene átvennem és némi AS3 tevékenység után visszadanom ugyanennek a scriptnek két db változót (uid, uscore).
Ime a php script:
<?php
$EOL="<br>\n";
// -----------------------------------------
// get function
function get_userdata()
{
$t= time();
echo "&uid=$t&uname=gizike";
return;
}
// -----------------------------------------
// put function
// -----------------------------------------
function put_userdata($uid, $uscore)
{
echo "id=[$uid]";
echo "uscore=[$uscore]";
return;
}
// module body
// echo basename(__FILE__)." running ...$EOL";
if ($_GET["func"] == "get")
{
get_userdata();
}
if ($_GET["func"] == "put")
{
put_userdata($_GET["uid"], $_GET["uscore"]);
}
// echo basename(__FILE__)." ready.$EOL";
?>
Elvileg mindkét mindkét esetben get-es hívást vár a script.
Amikor adatot küld az AS3 felé, akkor így kell meghívni:
http://www.mydomain.com/myscript.php?func=get
Ekkor kellene AS3-ban beolvasni változókba az uid és az uname értékét, majd amikor lefutott az AS3-as program, akkor az visszaadná a uid és az uscore változókat a php script felé, valahogy így:
http://www.mydomain.com/myscript.php?func=get&uid=007&uscore=12345
Szóval nagyon hálás lennék, ha valamelyik AS3 guru segítene nekem, mert ez az URL VARS rész totál homályos folt számomra. A gondom csak az, hogy tegnapra kellene. :)
- 1523 megtekintés
Hozzászólások
http://www.peterelst.com/blog/2007/11/28/actionscript-30-wheres-my-load… -tobb infoert lasd az adobe oldalan levo doksikat!
_________________________________________________________________________
"ONE OF THESE DAYS I'M GOING TO CUT YOU INTO LITTLE PIECES!!!$E$%#$#%^*^"
- A hozzászóláshoz be kell jelentkezni
Az a bajom, hogy már átnyálaztam jópár doksit s nem nagyon sikerült megoldanom a problémát. Azért kérném olyanok segítségét, akik járatosak a PHP és az AS3 közti kommunikációban, mert félek, hogy kifutok az időből.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a tippet. Egyelőre még a php->as3 sem megy. Majd csak aztán jön az as3->php. :)
Továbbra is várom a segítőkész AS3 programozókat, mert holnap le kell adnom a játékot! ;)
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Köszönöm, de ez meg nem AS3-as, hiszen LoadVars-t használ, nem URLRequest-et! :)
- A hozzászóláshoz be kell jelentkezni
Sziasztok!
Az alábbi AS3 és PHP kódot próbáltam ki a szerverünkön és mindig a httpStatusHandler event handler hívódik meg, soha nem jut el a completeHandler-ig. Mi okozhatja?
Egyébként a httpStatusHandler a következőt írja ki:
[HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=0]
package
{
import flash.display.*;
import flash.text.*;
import flash.events.*;
import flash.net.*;
public class main extends Sprite
{
public var label1:TextField;
public var label2:TextField;
public var label3:TextField;
public var label4:TextField;
public var label5:TextField;
public function main():void
{
label1 = createTextField(0, 360, 200, 20);
label2 = createTextField(0, 380, 200, 20);
label3 = createTextField(0, 400, 200, 20);
label4 = createTextField(0, 420, 200, 20);
label5 = createTextField(0, 440, 200, 20);
var variables:URLVariables = new URLVariables();
var request:URLRequest = new URLRequest("http://www.mydomain.com/myScript.php");
request.method = URLRequestMethod.GET;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
loader.load(request);
label1.text = variables.data.uname;
}
public function httpStatusHandler(e:Event):void
{
label2.text = "httpStatusHandler:" + e;
}
public function securityErrorHandler(e:Event):void
{
label3.text = "securityErrorHandler:" + e;
}
public function ioErrorHandler(e:Event):void
{
label4.text = "ioErrorHandler: " + e;
}
public function completeHandler(evt:Event):void
{
var username:String = evt.target.data.uname;
var userid:String = evt.target.data.uid;
label1.text = "username: " + username;
label2.text = "uid: " + userid;
}
private function createTextField(x:Number, y:Number, width:Number, height:Number):TextField
{
var result:TextField = new TextField();
result.x = x;
result.y = y;
result.width = width;
result.height = height;
result.textColor = 0x000000;
result.background = false;
result.backgroundColor = 0xFFFFFF;
stage.addChild(result);
return result;
}
}
}
A szerver oldali php kód:
<?php
$returnVars = array();
$returnVars['uname'] = "John Doe";
$returnVars['uid'] = "123";
$returnString = http_build_query($returnVars);
echo $returnString;
?>
- A hozzászóláshoz be kell jelentkezni