参数传递是最基本的,之前是AS2,现在用AS3与Red5 0.63/0.7了,几乎没什么变化.不过Flash/Flex这边的可以传递的参数也就多了一些.就基本的是 String,int,Number,Boolean,Array,对应到red5这边是String,int,double,boolean,List
/**
* @(#)ParamRed5.as
* @author soda.C
* @version 1.0
*
Copyright (C), 2007 soda.C
*
This program is protected by copyright laws.
* @data 2008-2-19
*/
package org.sujun.red5.test
{
import flash.display.Sprite;
import flash.net.NetConnection;
import flash.events.NetStatusEvent;
import flash.events.SecurityErrorEvent;
import flash.net.Responder;
/**
* 测试flash与red5之间参数的传递
*/
public class ParamRed5 extends Sprite
{
private var netConnection:NetConnection;
public function ParamRed5():void
{
netConnection = new NetConnection();
netConnection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
netConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
netConnection.connect(”rtmp://localhost/paramtest”);
}
private function netStatusHandler(event:NetStatusEvent):void
{
trace(”连接状态:” + event.info["code"]);
switch (event.info["code"])
{
case “NetConnection.Connect.Success”:
trace(”连接成功…..”);
//呼叫服务器的baseParam方法,传递基本参数,string,int,number,Boolean
netConnection.call(”baseParam”, new Responder(baseParamResult),”soda.C”,24,1000.1,false);
//封装数组,int
var ary:Array = new Array();
ary.push(1);
ary.push(2);
ary.push(3);
//封装数组,String
var ary1:Array = new Array();
ary1.push(”a”);
ary1.push(”b”);
ary1.push(”c”);
netConnection.call(”receiveArray”, new Responder(baseParamResult),ary,ary1);
break;
case “NetStream.Play.StreamNotFound”:
trace(”Stream not found: “);
break;
}
}
private function baseParamResult(obj:Object):void
{
trace(obj);
trace(”响应了…..”);
}
private function securityErrorHandler(event:SecurityErrorEvent):void
{
trace(”securityErrorHandler: ” + event);
}
}
}
接下来看Red5服务端的java代码
ParamRed5App.java,该类继承了ApplicationAdapt
package org.sujun.red5.test;
import java.util.List;
import org.red5.server.adapter.ApplicationAdapter;
/**
* 存放被flash客户端调用的方法
*/
public class ParamRed5App extends ApplicationAdapter
{
public ParamRed5App()
{
System.out.println(”被初始化了……”);
}
/**
* 接受服务器传过来的基本参数
*/
public void baseParam(String name, int age, double value, boolean flag)
{
System.out.println(”—-name—-” + name);
System.out.println(”—-age—-” + age);
System.out.println(”—-value—-” + value);
System.out.println(”—-flag—-” + flag);
}
/**
* 接受客户端传递过来的数组
*/
public void receiveArray(List<integer> intArray, List<string> strArray)
{
for(int i = 0; i < intArray.size(); i++)
{
System.out.println(”—-intArray—-” + intArray.get(i).intValue());
}
for(int i = 0; i < intArray.size(); i++)
{
System.out.println(”—-strArray—-” + strArray.get(i));
}
}
}</string></integer>
看结果…
代码很简单…….直接复制过去,建立一个Red5应用就可以使用了
本文来自: http://conjs.cn 详细出处参考:http://conjs.cn/?tag=as3red5