首页 > 编程 > .NET > 正文

用vs.net创建webservice+flash简易计算器

2024-07-10 13:01:44
字体:
来源:转载
供稿:网友
'=====================
' 转载请保留以下信息
'原创:欧阳东杰
'http://www.cnsxml.com
'=====================
看过这个教程后,您会发现,webservice在.net上真的很简单!
我们要利用vs.net创建一个简单的webservice,他的功能是进行简单四则运算.
然后创建一个flash来调用这个webservice


一、创建webservice
1. 打开 visual studio .net。
2. 创建一个新的 active server pages (asp) .net web 服务项目。 将该 web 服务命名为 oydjservice,并在必要时将其位置指定为一个适

当的运行 asp.net 的 web 服务器。
3. 将 solution 文件的名称改为 oydjservice 以保持一致。
4. 将用 service1.asmx 创建的默认 web 服务的名称更改为 oydjservice.asmx。
5. 单击设计环境中的单击此处切换到代码视图以切换到代码视图。
6. 定义用来封装您的服务功能的方法。 此服务提供的每一个方法前面都必须标有一个 webmethod 属性。如果没有此属性,则服务将不公开此

方法。

备注: 并不是每一个方法都需要有 webmethod 属性。 隐藏由公用 web 服务方法调用的某些实现细节是很有用的,在本地应用程序也使用

webservice 类的情况下,也需要隐藏某些实现细节。 本地应用程序可以使用任何公用类,但只有具有 webmethod 属性的方法可以作为 web

服务远程访问。

将下面的代码添加到您在前面创建的 oydjservices 类:

程序代码:
<webmethod()> public function add(a as integer, b as integer) as integer
return(a + b)
end function

<webmethod()> public function subtract(a as system.single, b as system.single) as system.single
return a - b
end function

<webmethod()> public function multiply(a as system.single, b as system.single) as system.single
return a * b
end function

<webmethod()> public function divide(a as system.single, b as system.single) as system.single
if b = 0
return -1
end if
return convert.tosingle(a / b)
end function




生成 web 服务: 从生成菜单中,选择生成。
可通过转至 oydjservice.asmx web 服务页来测试此 web 服务。 如果您的页面放置在本地计算机上,那么 url 将是

http://localhost/oydjservice/oydjservice.asmx。

运行时 asp.net 将返回一个 web 服务帮助页来说明此 web 服务。 此页还让您能够测试不同的 web 服务方法。


二、创建flash来调用这个webservice

1. 新建个flash
2.拖入2个文本框(textarea),分别命名为:t1、t2
3.拖入个下拉菜单(combobox),命名为:ysf,并填加"data"属性:"[1,2,3,4]"、"labels"属性:"[+,-,*,÷]"
4.拖入个动态文本框,命名为:convert
5.拖入个按钮(button),命名为:search
6.拖入个webserviceconnector 组件
7.在第一帧处编辑"动作",把以下代码加入

程序代码:
import mx.services.*;

//设置wsdl地址
var wsdluri = "http://localhost/oydjservice/oydjservice.asmx?wsdl";
ws = new webservice(wsdluri);

//点了按钮后开始连接ws并计算
search.onpress=function() {
//进行计算
switch (ysf.selecteditem.data) {
case 1:
callback = ws.add(t1.text,t2.text);
break;

case 2:
callback = ws.subtract(t1.text,t2.text);
break;

case 3:
callback = ws.multiply(t1.text,t2.text);
break;

case 4:
callback = ws.divide(t2.text,t1.text);
break;

}
//web服务成功传回信息
callback.onresult = function(result) {
convert.text=result;
}
//web服务错误传回信息
callback.onfault = function(fault) {
for(i in fault){
trace(i+ " : "+fault[i]);
}
}
}





三、演示

(因为我的webservice服务器不太稳定,有可能不能正确显示)

三、flash原文件下载
http://cnsxml.com/demo/webs_flash/jj.fla

  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表