现在的位置: 首页 > 综合 > 正文

AS3与Red5之间的参数传递

2018年03月30日 ⁄ 综合 ⁄ 共 2517字 ⁄ 字号 评论关闭

参数传递是最基本的,之前是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

 

抱歉!评论已关闭.