• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>flash和WEB程序应用>文章内容
  • Flash P2P 通信技巧(AS-Java-AS)
  • 来源:蓝色理想 作者:hack86 2008-05-16 【

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的要求了呢?我只是举是一个简单例子,你可以按要求自己再修改。


上一页 1 23 4 5 下一页

上一篇:flash 结合php 生成jpg/png图   下一篇:amfPHP工作原理
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
推荐内容

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)