场景:使用FLASH做UI层,使用ASP.NET做DLL层;通过FLASH文件发送一数据,经DLL计算后返回显示在FLASH当中。

使用工具:VS2003和FLASH MX 2004

DEMO源码下载(148K)

详解:

1.UI层,FLASH件:新建一空FLASH文件,从工具箱中拉入一“输入文本”,命变量名为txt;再从组件中拉入一Label和Buttom,分别命名为lb和bt;再第一帧上插入以下AS代码

var param1:String;
var URLpreFix:String;
//设置服务器URL文件,根据实际自定义
URLpreFix = "http://localhost/flashtext/WebForm1.aspx";
bt.onRelease 
= function() {
    
//LoadVars 类是 loadVariables() 函数的替代方法,用于在 Flash 应用程序和服务器之间传输变量。
    var myLoadVars = new LoadVars();
    
//txt是场景里面的一个文本变量
    //把txt变量的值传给LoadVars类对象
    myLoadVars.txt = txt;
    
//发送给服务器,可使用HTTP 协议的 GET 或 POST 方法。
    myLoadVars.sendAndLoad(URLpreFix, myLoadVars, "post");
    _root.lb.text
="正在加载数据";
    
//得到服务器是否成功返回数据,success是成功标志,成功时返回true
    myLoadVars.onLoad = function(success) {
        
//如果成功把lb的文本换成服务器返回的变量值
        if (success) {
                _root.lb.text 
= this.txt;
        }
 else {
            _root.lb.textt 
= "异常错误!";
        }

    }
;
}
;

2.DLL层,ASPX文件:新建一“asp.net web 应用程序”,位置为http://localhost/flashtext/,然后把转到HTML设计介面,把HTML代码删除掉,只保存以下这行代码(ASP.NET是采用codebehind设计,默认VS会自动产生一些HTML代码),
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="flashtext.WebForm1" %>

这个很重要,因为如果没有删除,等一下运行,服务器会返回这些HTML代码给UI层,使之产生错误。


3.DLL层,ASPX.cs文件:点开WebForm1.aspx.cs设计类文件,输入代码,用于Request FLASH送过来的数据而提交商业逻辑层处理,完整如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace flashtext
{
    
/// <summary>
    
/// WebForm1 的摘要说明。
    
/// </summary>

    public class WebForm1 : System.Web.UI.Page
    
{
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面

            
string txt=Request["txt"];
            testClass test
=new testClass();

            Response.Write(
"&&txt=" + test.getData(txt));
        }


        
Web 窗体设计器生成的代码
    }

}


4.DLL层,运行商业逻辑:新建一个新类,名为testClass.cs,用于整个demo简单的商业逻辑处理(在此你可以完全去处理与数据库相关处理等等),只返回一行数据,代码如下:
using System;

namespace flashtext
{
    
/// <summary>
    
/// testClass 的摘要说明。
    
/// </summary>

    public class testClass
    
{
        
public testClass()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
//方法getData()可以取得数据
        public String getData(string param1)
        
{
            
//假设这里去读数据了
            
            
return "这是来自aspx返回的数据:"+param1;
        }

    }

}


总结:如今FLASH与. net紧密结合,以上是一简单的FLASH与ASP.NET通信程序,关于FLASH与ASP.NET通信还有几种方法,有关文章可以参考Flash* and .NET* Integration Using ASP.NET
关于FLASH与winform结合的应用,参考前几天写过的demo:下载源码(要求VS2003flash8