There were many types of server side scripting environment out there. For example: there's php, asp, asp.net etc. But I choose php most of the time because its free and it's easy to use.
Let's look at the scripts below:
I am using a flash file to communicate to the server side script.
package com.phppostget
{
import com.zcs.net.NetConnect;
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.NetConnection;
import flash.net.URLVariables;
import flash.text.TextField;
public class Main extends Sprite
{
//This is a class that I had written to simplify
//the connection to a server side script
private var tempConnect:NetConnect;
//Create pointers to the movieclips and textfield on Stage
public var _send_mc:MovieClip = new MovieClip();
public var _btn_mc:MovieClip = new MovieClip();
public var _value1_txt:TextField = new TextField();
public var _value2_txt:TextField = new TextField();
public var _value3_txt:TextField = new TextField();
public var _input1_txt:TextField = new TextField();
public var _input2_txt:TextField = new TextField();
public var _input3_txt:TextField = new TextField();
public var _url_txt:TextField = new TextField();
public var _result_txt:TextField = new TextField();
public function Main(){
//Setup all the pointers to the respective movieclips and textfields
//and setup the listeners to all these Movieclips and buttons
_btn_mc = this.getChildByName("btn_mc");
_btn_mc.gotoAndStop(1);
_btn_mc.addEventListener(MouseEvent.CLICK, changeMethodEvent);
_send_mc = this.getChildByName("send_mc");
_send_mc.addEventListener(MouseEvent.CLICK, sendDataEvent);
_value1_txt = this.getChildByName("value1_txt") as TextField;
_value2_txt = this.getChildByName("value2_txt") as TextField;
_value3_txt = this.getChildByName("value3_txt") as TextField;
_input1_txt = this.getChildByName("input1_txt") as TextField;
_input2_txt = this.getChildByName("input2_txt") as TextField;
_input3_txt = this.getChildByName("input3_txt") as TextField;
_url_txt = this.getChildByName("url_txt") as TextField;
_result_txt = this.getChildByName("result_txt") as TextField;
}
//Simple listner to toggle the POST and GET state
//upon clicking on the Movieclip
private function changeMethodEvent(event:Event):void{
if(_btn_mc.currentFrame == 1){
_btn_mc.gotoAndStop(2);
}else{
_btn_mc.gotoAndStop(1);
}
}
//Sending the values to the server side script
//upon clicking on the Send button
private function sendDataEvent(event:Event):void{
var tempXMLStr:String = "<"+_input1_txt.text+">" + _value1_txt.text + ""+_input1_txt.text+">";
tempXMLStr += "<"+_input2_txt.text+">" + _value2_txt.text + ""+ _input2_txt.text +">";
tempXMLStr += "<"+_input3_txt.text+">" + _value3_txt.text + ""+ _input3_txt.text +">";
var tempXML:XML = new XML(tempXMLStr);
tempConnect = new NetConnect(_url_txt.text, tempXML, Number(_btn_mc.currentFrame));
tempConnect.addEventListener(NetConnect.PARSE_NET_OK, showResultEvent);
}
//When the server side script returns a result, show it on the result textfield
private function showResultEvent(event:Event):void{
if(_btn_mc.currentFrame == 1){
_result_txt.text = "POST: ";
}else{
_result_txt.text = "GET: ";
}
var urlVar:URLVariables = new URLVariables(tempConnect.getResult());
_result_txt.appendText(urlVar.msg);
}
}
}Look at the source code of this php file. I don't need to bother about the calls to this php using a POST or a GET method. $_REQUEST will handle both POST and GET method calls. Isn't that great?
<?php //Regardless of POST or GET, grab the values that //were send to this php files $name = $_REQUEST["name"]; $desc = $_REQUEST["desc"]; $info = $_REQUEST["info"]; //output a simple message with the values that were //pass into this php file echo "msg=Hello ".$name.", the following are your description:".$desc." and here are your info.".$info."&misc="; ?>
Click here for the demo of this post.
Click here for the source files of this post.
No comments:
Post a Comment