Flash 与 Web Service 技术的完美结合(.NET)下

      Flash平台 2005-12-3 16:38

转自:http://www.frontfree.net/view/article_878.html

如今,Flash 在前台技术的发展可谓是走在了最前面,绚丽的效果和丰富的交互都给人深刻的印象。但是很不幸的是,在国内,Flash 的兴起是凭借了网络动画、MTV和广告条等等这些因素。所以每当和身边的人提到 Flash 的时候每个人对 Flash 的认识总是一个很有意思的动画制作软件。相反在国外,Flash 的闪光点才真正发挥了出来。像现在炒得很热的 RIA 概念,最早就是 Macromedia 提出的,并且给出的实现手段就是使用 Flash 制作前台界面,并且整合后台服务器端技术,达到丰富用户体验的目的。

Flash 整合服务器端技术可能和 Flash 网络动画的距离远一些,但是相信大家也并不陌生,主要是靠与动态网页之间相互传值实现。但是说到 Flash 与 Web Service 的整合,相信除了有志要研究这方面的朋友外,就没有太多人知道应该怎么实现了。在上面一篇文章中介绍了使用 Flash 中内置的组件 Web Service Connecter 实现与 .NET Web Service 进行数据传输。在本文中,笔者将给各位介绍 Flash 与 Web Service 整合的另一种方法 —— Web Service Class。

Web Service Class 与 Web Service Connecter 相似,是 Flash 内置的类。选择菜单 Window -〉Other Panels -> Common Libraries -> Classes

打开 Classes 面板,就可以看到 Web Service Class。将它拖到你的 Flash 文件的 Library 中。

注意:这个步骤很重要,如果没有将 Web Service Class 拖进自己的 Library,后面就会发现自己的程序没有一点错误,但是始终编译不过去。

下面笔者来做一个简单的示例。

这个示例是用 flash 调用 Web Service 计算两个数相加。的确是一个没有任何意义的程序,但是却拥有一些基本元素,比如给 Web Service 传参,接受返回值这些最基本却最重要的环节。

首先编写 Web Service 函数,笔者使用的工具是 vs.net 2005 beta2,所选语言为 C#。代码非常之简单:

[WebMethod]
public int test(int a, int b)
{
    return a + b;
}

接下来我们可以在测试页中测试编写是否正确。之后就可以开始编写 Flash 代码了。不过在这之前,我们先拖入几个控件。

三个输入框的实例名从上到下分别是:a,b,r。点击按钮,在 Actions 面板中输入:

on(click){
import mx.services.*;
    var ws = new WebService("/*Web Service 测试页的地址*/?WSDL");
    var pc:PendingCall;
    pc = ws.test(Number(_root.a.text), Number(_root.b.text));
    pc.onResult = function(result){
        _root.r.text = result;
    }
    pc.onFault = function(){
        trace("Web Service 调用失败!")
    }
}

然后按 Ctrl + Enter 执行就可以看到结果了

怎么样?是不是很简单呢?同样样通过天气预报的 Web Service(网上有许多免费的 Web Service)你就可以方便地给你的网站加上一个动态的天气预报程序了。不仅如此,由于前台使用的是 Flash 技术,你可以尽情发挥你的想象力,制作出更有视觉冲击力和丰富交互的界面。

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}