Flex与asp.net完美集合

本文和大家重点讨论一下Flex与asp.net的结合,将Flex编译后的程序插入到asp.net页面和Flex程序与asp.net程序交互两大部分内容,希望本文的介绍能让你有所收获。

创新互联专业为企业提供海南网站建设、海南做网站、海南网站设计、海南网站制作等企业网站建设、网页设计与制作、海南企业网站模板建站服务,10年海南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Flex与asp.net结合使用

1.将Flex编译后的程序插入到asp.net页面

Flex的最终输出就是一张网页+一个flash(.swf文件)就是用他生成的网页的方式把那个.swf文件插入asp.net页面就可以了。

Flex3项目名字叫TestApp,最简单直接的办法就是,把"bin-debug"目录下的:
◆TestApp.html
◆TestApp.swf
◆AC_OETags.js
◆playerProductInstall.swf
这4个文件复制到asp.net网站下面,打开TestApp.html,把内容复制到asp.net程序页面(.aspx文件)中。
比如Default.aspx:

 
 
 
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>
  2. //把TestApp.html的内容全部复制到这里
  3. //....
  4. //...

总而言之Flex3最后编译成了一个.swf文件而已,这个文件在网站里面插入的方法和普通的flash动画的那种.swf文件的使用方法是一样的。
还有其他的要求:Flex3程序和网页还有交互,请用"Flexexternalinterface"搜索

2.Flex程序与asp.net程序交互

可以使用Flex的Loader往asp.net发送请求,获取xml。
也可以使用ExternalInterface和网页中的js交互,让js发送ajax请求到asp.net。

下面有一实例,目标是:在Flex端将数据Post到asp.net页面中,并将返回的xml数据显示出来

//Asp.net端代码
//getxml.aspx代码,保留一行即可,删除其他的html代码

 
 
 
  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="getxml.aspx.cs"Inherits="getxml"%>
  2. //getxml.aspx.cs
  3. //usingSystem...
  4. usingSystem.Xml;
  5. publicpartialclassgetxml:System.Web.UI.Page
  6. {
  7. protectedvoidPage_Load(objectsender,EventArgse)
  8. {
  9. stringuser_pkid=System.Web.HttpContext.Current.Request.Form["user_pkid"];
  10. ifuser_pkid!=null)
  11. {
  12. CreateXml();//创建Xml的方法,可使用XmlTextWriter、XmlDocument,或者直接读取Xml文件等待
  13. }
  14. }
  15. privatevoidCreateXml()
  16. {
  17. XmlDocumentdoc=newXmlDocument();
  18. XmlNoderoot=doc.CreateElement("channel");
  19. XmlElementtitleElm=doc.CreateElement("title");
  20. titleElm.InnerText="blogweather";
  21. //...
  22. root.AppendChild(titleElm);
  23. doc.AppendChild(root);
  24. XmlTextWriterxw=newXmlTextWriter(Response.OutputStream,System.Text.Encoding.UTF8);//写到页面返回值中
  25. xw.Formatting=Formatting.Indented;//将Xml格式化
  26. doc.Save(xw);
  27. xw.Flush();
  28. xw.Close();
  29. }
  30. }

 Xml数据如下:

 
 
 
  1. blogweather
  2. http://www.blogweather.net
  3. 博客天气预报

方法一:
如果所有值均在xml数据中,而且不需要拿这些数据做二次分析,则推荐使用HTTPService控件

Flex端代码:

 
 
 
  1. importmx.messaging.AbstractConsumer;
  2. importflash.events.MouseEvent;
  3. importmx.controls.Alert;
  4. privatefunctioninit():void
  5. {
  6. getxml.url="http://www.blogweather.net/getxml.aspx";//接收Post方法的页面
  7. vardata:Object=newObject();
  8. data["user_pkid"]=this.parameters.user_pkid;
  9. getxml.send(data);
  10. }
  11. ]]>
  12. {getxml.lastResult.channel.title}

 方法二:
如果要将数据进行分析,则要使用URLLoader和URLRequest
Flex端代码:

 
 
 
  1. importmx.messaging.AbstractConsumer;
  2. importmx.messaging.channels.StreamingAMFChannel;
  3. importflash.events.MouseEvent;
  4. importmx.controls.Alert;
  5. publicvarmyLoader:URLLoader=newURLLoader();
  6. publicvarmyRequest:URLRequest;
  7. publicvaruser_pkid:String;
  8. privatefunctioninit():void
  9. {
  10. varhttp://www.cnblogs.com/glaivelee/admin/String="http://www.blogweather.net/getxml.aspx";
  11. myRequest=newURLRequest(url);
  12. myRequest.method=URLRequestMethod.POST;
  13. vardata:URLVariables=newURLVariables();
  14. //接收来自flash的参数调用,比如flash文件为loadxml.swf,带参数loadxml.swf?user_pkid=10001
  15. data.user_pkid=this.parameters.user_pkid;//获取10001
  16. myRequest.data=data;
  17. myLoader.load(myRequest);
  18. myLoader.addEventListener(Event.COMPLETE,onLoadComplete);
  19. }
  20. privatefunctiononLoadComplete(event:Event):void
  21. {
  22. varmyxml:XML;
  23. varloader:URLLoader=URLLoader(event.target);
  24. myxml=newXML(loader.data);
  25. lb_title.text=myxml.child("channel")[0].child("title");
  26. if(lb_title.text=="blogweather")
  27. {
  28. Alert("页面名称为:博客天气预报");
  29. }
  30. }
  31. ]]>
  32. lb_title

网站名称:Flex与asp.net完美集合
文章路径:http://www.csdahua.cn/qtweb/news20/496420.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网