1.新建一个index.fla 的文件,加一个按钮,取名为“btngoto”
2.对应的as3代码为:src/index.as
package src
{
/**
* ...
* @author aa
*/
import flash.display.*;
import flash.events.*;
import flash.net.*;
import json.*;
public class index extends Sprite
{
public function index():void
{
btngoto.addEventListener(MouseEvent.CLICK,connecttoserver);
}
function connecttoserver(event:MouseEvent):void {
var scriptRequest:URLRequest = new URLRequest("
http://localhost:8080/newKFXT/index.jsp");
var scriptLoader:URLLoader = new URLLoader();
var scriptVars:URLVariables = new URLVariables();
scriptLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);
scriptVars.var1 = "one";
scriptVars.var2 = "two";
scriptRequest.method = URLRequestMethod.POST;
scriptRequest.data = scriptVars;
scriptLoader.load(scriptRequest);
}
function handleLoadSuccessful(evt:Event):void {
trace("Message sent.");
//从服务器端取到json字串显示
var returnResult:String = evt.target.data ;//不知道为什么evt.target.data取出的数据有回车,所以要用数据处理一下
var listarray:Array = returnResult.split("\n");
var serverJSON:String = listarray[1] ;
var s:Object = JSON.decode(serverJSON);
//开始使用
trace(s.programmers[0].firstName);
}
function handleLoadError(evt:IOErrorEvent):void {
trace("Message failed.");
}
}
}
3.jsp代码为:index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
out.clear();//这地方加上这句话,那as里就不用截“/n”了
System.out.println("----- connected -----");
// 在和 flash 通信时,请保证字符集为 UTF-8,否则传输中文会产生乱码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
out.print("{ \"programmers\": [{ \"firstName\": \""+request.getParameter("var1")+"\", \"lastName\":\"马克思\" },{ \"firstName\": \""+request.getParameter("var2")+"\", \"lastName\":\"Hunter\"}]}");
%>
4.结果为:
Message sent.
one
最后别忘了 jsp 就是 servlet,因此能和 jsp 通信也就能和 servlet 通信。当然与 php, asp 通信方法也都是这样的。以上就是 flash 与后台通信最简单、最直接的方法。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。