这个例子使用flash CS3来展示如何将一个flash文件连接到一个服务器端的脚本,别且如何从服务器获取数据。在这个例子里面,flash用户界面有一个Button组件(其实例名称是bt)和一个lebel组件(其实例名称是txt)。当一个用户点击Button,客户端连接到服务器;然后客户端运行服务器端的函数来返回一个字符串的值。当服务器端回应了,客户端的回应函数在label上显示字符传。客户端通过改变Button的label来断开连接。当diaconnect的按钮被点击,客户端断开连接,并且清空label。
ONE.创建用户界面
1.开启Flash CS3,然后选择新建>flash文件(ActionScript 3.0)。
2.选择窗口>组件,然后选择User Interface>Button。在属性栏里面为按钮取名bt。
3.添加一个Label组件,移动它到按钮上面,取名为txt。
保存文件为test.fla。
TWO.建立as文件。
输入以下代码:
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.net.NetConnection;
import flash.net.Responder;
public class Main extends MovieClip {
public var nc:NetConnection;
public var myRespond:Responder;
public function Main():void {
txt.text="";
bt.label="请点击链接";
myRespond=new Responder(success,failed);
bt.addEventListener(MouseEvent.CLICK,clickHandler);
}
private function clickHandler(e:MouseEvent) {
if (bt.label=="请点击链接") {
bt.label="请点击断开";
nc=new NetConnection();
nc.connect("rtmp://localhost/viniFMS");
nc.addEventListener(NetStatusEvent.NET_STATUS,statusHandler);
nc.call("sayServermsg",myRespond,"Hi");
} else {
txt.text="";
bt.label="请点击链接";
nc.close();
}
}
private function statusHandler(e:NetStatusEvent) {
if (e.info.code=="NetConnection.Connect.Success") {
trace("ok");
}
}
private function success(result:Object) {
trace("成功:"+result.toString());
txt.text=result.toString();
}
private function failed(result:Object) {
trace("失败:"+result.toString());
}
}
}
将as文件保存为Main.as
在test.fla的属性那的文档类输入Main。保存。
Three:建立通讯文件(.asc)
1.选择文件>新建>actionscript通信文件。
输入以下代码:
application.onConnect=function(client){
application.acceptConnection(client);
client.sayServermsg=function(msg){
return msg+",欢迎你来到FMS的世界 !";
}
}
将文件保存到fms的application的文件夹下的viniFMS文件夹下,文件名为:main.asc.
确保FMS的服务已经打开,80端口没有被php等占用。
然后运行flash,点击按钮。就会有结果出现了。如下图所示。
再点击按钮。关闭连接。再点就是打开。如此循环。客户端会得到服务器端返回的
数据。
一个客户端用actionscript编码来连接到服务器,处理事件,和做其它工作。通过flash CS3你可以使用actionscript 3.0,2.0或1.0,但是actionscript3.0提供更多特性。要想使用flex,你必须使用actionscript 3.0.
Actionscript3.0显著的不同于actionscript 2.0。这个向导假设你是在正在编写actionscript 3.0的类,这些类是一些外部的.as文件,有符合你的开发环境的目录结构的包的名称