1.2 AS1 与 Java 通信
Action Script 1
var SERVER_PORT = 10086;
var SERVER_IP = "127.0.0.1";
var conn = new XMLSocket();
conn.connect(SERVER_IP,SERVER_PORT);
conn.onConnect = socketConnect;
conn.onData = socketData;
function socketConnect(success){
trace("connect"+success);
if(success){
this.send("hello world\r");
}
}
function socketData(src){
trace(src);
}
接触了相对生疏的Java后现在回到AS,感觉就是爽,嘿嘿
前三行定义了三个变量,由于as1没有强制类型,所以千万别加上类型修饰符啊,反而会出错,请注意。
conn.connect(SERVER_IP,SERVER_PORT);连接到socket的服务器。
如果连接成功 Java中的 ServerSocket.accept();会返回一个对象,并向下执行。
as的连接成功呢则触发了socketConnect(success)的事件,并且把true的参数传如函数。当然连不到就是false了。
成功后就会发送一个"hello world\r"的字符串,"\r"是回车符,因为Java里我用的是readLine();所以需要看到行的结束。
当有数据进来的时候呢就会出发socketData函数了,这里把信息输出。
好了用as1的朋友到此已经成功与Java程序通讯了。
1.3 AS2 与 Java 通信
Action Script 2
var SERVER_PORT:Number = 10086;
var SERVER_IP:String = "127.0.0.1";
var conn:XMLSocket = new XMLSocket();
conn.connect(SERVER_IP,SERVER_PORT);
conn.onConnect = socketConnect;
conn.onData = socketData;
function socketConnect(success:Boolean){
trace("connect"+success);
if(success){
this.send("hello world\r");
}
}
function socketData(src:String){
trace(src);
}
以上是fla版,和as1唯一的区别就是有类型定义,这样做无论是时间执行效率还是空间执行效率都会有明显提高。
接下去看看真正的Action Script 2代码,将以下代码保存成Socket.as文件,和fla文件放在一起。
class Socket extends XMLSocket{
public function Socket(){
super();
}
public function onConnect(success:Boolean){
trace("connect"+success);
if (success){
this.send("hello world\r");
}
}
public function onData(src:String){
trace(src);
}
}
fla里在帧上写
var SERVER_PORT:Number = 10086;
var SERVER_IP:String = "127.0.0.1";
var conn:Socket = new Socket();
conn.connect(SERVER_IP,SERVER_PORT);
这才是真正的as2,当然你可以更好的修改Socket,让他符合Server的要求,比如在类里加上一个常量,并写入符合Server要求的方法。
public var msg:String = "";
public function write(src){
msg += src;
}
public function flush(){
this.send(msg+"\r");
msg = "";
}
这样在fla里发送的方式就改为
conn.write("hello world");
conn.flush();
这样是不是又规范又符合Java的要求了呢?我只是举是一个简单例子,你可以按要求自己再修改。
admin#flashas.net (#为@) 联系QQ:
:40777822
浙ICP备06033001号