`
yzgfbj
  • 浏览: 78497 次
  • 来自: ...
社区版块
存档分类
最新评论

flash与html及服务器的通信

阅读更多
flash与html及服务器的通信
前一段时间有机会接触到flash编程,学习了一些方法,在次记录以备后用:)
1.html与flash通信
html要将自己的参数传给flash内部,我目前知道只有一次机会,也就是flash播放器加载的时候传入。传入的方法有2种:
  1>直接url拼接。也就是模拟get传参。
 
 <object  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="750" height="656">
  <param name="movie" value='/test/test.swf?param1=mushui&param2=mushui2'>
  <param name="quality" value="high">
   <param name="allowScriptAccess" value="sameDomain" />
  <embed src='/test/test.swf?param1=mushui&param2=mushui2' type="application/x-shockwave-flash"
   quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" width="750" height="656"></embed>
 </object>

  在写swf文件地址的时候,在后面拼接参数值对。
  在flash文件中要获得html传入的参数,可以直接用_root.param1和_root.param2获得。想一想应该是_root对象就想js中的window对象是一个全局对象,外部通过播放器传入的参数就是直接放入_root作用域下。
  2>通过FlashVars参数传入
  在上面的<object>标签中加入
<param name="FlashVars" value="param1=mushui&amp;param2=mushui2"/>


  这种方法应该是模拟了上边的方法,flash获取参数与上边相同
2.flash与服务器通讯
   1>LoadVars类
   当只是向服务器发送消息不获得反馈可以用loadVar.send(url,target,[method]):Boolean;
参数介绍:url:请求的地址
  
 target:[_blank;_top;_self;_parent]
    method:[post|get] 

例如:
var my_lv:LoadVars = new LoadVars();
my_lv.playerName = playerName_txt.text;
my_lv.playerScore = playerScore_txt.text;
my_lv.send("setscore.cfm", "_blank", "POST");


如果要获得返回信息,可以用loadVar.sendAndLoad(url,resutlObject,[method])方法。
参数介绍:url:同上

    resultObject:也必须是一个LoadVars对象获得服务器返回的参数。作为容器,通常我们传入发送请求的loadVars对象,用自己作为容器。
服务器返回的参数也是以值对的方式返回。例如:key=value1&key2=value2...的形式。获得返回参数必须要在loadVar的回调函数onLoad里获得,表明从服务器返回了。在onLoad 的方法里,如果传入发出请求的对象,也就是自己,可以通过this.key获得服务器返回的参数。否则用resultObject对象获得返回的参数。
例如:
var submitListener:Object = new Object();
submitListener.click = function(evt:Object) {
    var result_lv:LoadVars = new LoadVars();
    result_lv.onLoad = function(success:Boolean) {
    if (success) {
        result_ta.text = result_lv.welcomeMessage;
    } else {
        result_ta.text = "Error connecting to server.";
    }
    };
    var send_lv:LoadVars = new LoadVars();
    send_lv.name = name_ti.text;
    send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};
submit_button.addEventListener("click", submitListener);



   2>XML对象
  上面的对象,返回少量数据或文本数据可以,但是要返回大量数据,用xml对象比较适合。它返回的是一个dom对象。在flash中解析获得数据。
它也有,xml.send()和xml.sendAndLoad(url,XML对象)方法,和上边一样。同样需要在onLoad回调方法里解析dom树。
例子:
1.
var my_xml:XML = new XML("<highscore><name>Ernie</name><score>13045</score></highscore>");
my_xml.contentType = "text/xml";
my_xml.send("http://www.flash-mx.com/mm/highscore.cfm", "_blank");

2.
var login_str:String = "<login username=\""+username_txt.text+"\" password=\""+password_txt.text+"\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.cfm", myLoginReply_xml);
function myOnLoad(success:Boolean) {
    if (success) {
        if ((myLoginReply_xml.firstChild.nodeName == "packet") &&
            (myLoginReply_xml.firstChild.attributes.success == "true")) {
            gotoAndStop("loggedIn");
        } else {
            gotoAndStop("loginFailed");
        }
    } else {
        gotoAndStop("connectionFailed");
    }
}

  

分享到:
评论

相关推荐

    flash与服务器端通信

    Flash Remoting是Flash与服务器通信的另一种常见方式,它通过NetConnection对象和NetStream对象来实现。NetConnection负责建立和管理到服务器的连接,NetStream则用于实际的数据传输。Flash Remoting支持AMF,这是一...

    Flash 与 html及C#程序通讯

    总结来说,Flash与HTML及C#程序的通信是通过多种机制实现的,包括External Interface、Web服务和WebSocket。随着技术的发展,现代Web开发更多地依赖于HTML5的新特性,但对Flash的理解和熟练运用仍对处理特定场景的...

    flash+java通信例子

    Java可以通过第三方库实现RTMP服务器,从而与Flash客户端通信。 6. **XML/JSON交换**:对于简单的数据交换,Flash和Java可以通过XML或JSON格式进行数据传输,这两种格式易于解析,兼容性好。 7. **WebSocket**:...

    Flash与C#通信

    本话题将深入探讨“Flash与C#通信”的技术细节。Flash,作为一种曾经广泛应用于网页动画和交互设计的平台,常常需要与后端或宿主环境进行数据交换。C#,作为.NET框架的一部分,提供强大的开发能力,特别是在Windows...

    FLASH CS3(AS3)和JS之间通信

    标题“FLASH CS3(AS3)与JS之间通信”涉及的是两种主要的Web技术——Adobe Flash(使用ActionScript 3,简称AS3)和JavaScript之间的交互。这两种技术在Web开发中各自发挥着重要作用,Flash主要用于动画和多媒体内容...

    flash与aspx页面通信聊天,flash聊天,模仿QQ聊天,聊天表情

    在Flash与ASPx的场景下,可能使用XMLHttpRequest对象或者jQuery的ajax方法,通过Flash调用来实现服务器通信。 5. **即时通讯**:即时通讯(Instant Messaging, IM)系统允许用户实时发送消息。QQ聊天就是典型的IM...

    Flash flex与JS通信

    标题中的"Flash Flex与JS通信"指的是如何让运行在Adobe Flash Player中的Flex应用与浏览器中的JavaScript代码进行数据交换和功能调用。这种通信机制通常被称为External Interface或Bridge技术,它允许Flex应用与网页...

    php与flash通信

    这个例子中的留言系统就是一个很好的实践,它展示了如何在服务器端处理数据(PHP)和客户端展示及交互(Flash AS3.0)之间建立桥梁。对于初学者来说,这是一个学习PHP和Flash协同工作的好教材。

    轻量级flash服务器开发框架:Django

    总结,"轻量级Flash服务器开发框架:Django"是一个关于利用Python的Django框架构建能与Flash组件交互的Web服务器的过程。这个主题涵盖了Django的基本概念、功能、优势以及如何结合Flash技术进行开发,同时也强调了...

    Socket服务器跟Flash代码

    Flash中的Socket类提供了与Socket服务器通信的能力。`SocketExample.as`是AS3(ActionScript 3)代码,AS3是Flash Professional和Flash Builder等工具使用的编程语言。在这个例子中,AS3代码可能包含了建立Socket...

    Flash与C#交互

    本主题将深入探讨如何在BS(Browser-Server,浏览器-服务器)和CS(Client-Server,客户端-服务器)架构下实现Flash与C#之间的通信。 Flash是一款由Adobe公司开发的多媒体创作平台,它允许开发者创建动态的、交互式...

    C#与Flash交互

    总之,C#与Flash的交互涉及网络通信、数据序列化、服务器端编程等多个技术领域。掌握这些技能对于开发跨平台的交互式应用至关重要,尤其是在需要充分利用Flash的动态展示能力,同时利用C#的强大后端功能时。

    flash html5实现浏览器兼容的文件上传

    通过创建一个隐藏的Flash对象,用户可以选择文件,并通过Flash与服务器进行异步通信。这种技术在HTML5 File API不被所有浏览器支持的时代非常流行。 二、HTML5 File API HTML5引入了File API,允许开发者在...

    一个flash和javascript通信的例子

    标题 "一个Flash和JavaScript通信的例子" 涉及的核心技术是Flash与JavaScript之间的交互,也称为Flash External Interface(简称FEI)或者ActionScript JavaScript Bridge(AS3 JSBridge)。这种技术允许网页中的...

    FLASH与ASP交互实例

    `lv_shiyan.html`中会设置`allowScriptAccess`属性,允许Flash与HTML页面的JavaScript进行通信。 在实际应用中,这种交互方式可以实现诸如用户登录、数据提交、实时聊天等多种功能。通过深入理解Flash和ASP的交互...

    基于Ajax的Flash、HTML5上传组件(支持C#)

    在这个组件中,Ajax负责处理与服务器之间的通信,通过XMLHttpRequest对象发送HTTP请求,将文件数据提交到服务器,同时接收返回的响应,使得上传过程对用户来说是透明的。 Flash是一种广泛用于创建交互式内容的...

    FlashSocket与C#通讯

    FlashSocket,全称Adobe Flash Socket,是Adobe Flash Player支持的一种高级网络功能,它允许Flash应用程序(SWF)直接与服务器进行低级TCP/IP通信。传统Web应用基于HTTP协议,而HTTP是无状态的,不适合持续的双向...

    flash+html5浏览器兼容文件上传方案

    对于不支持HTML5的浏览器,我们需要创建一个Flash对象,通过ActionScript与JavaScript进行通信。Flash可以访问用户的文件系统,选取文件后,通过Flash的ExternalInterface调用JavaScript函数,传递文件数据。此时,...

    在两个Silverlight应用间数据通信(包括与Flash通信)

    最后,"DataTranferInSL"很可能是一个包含Silverlight客户端代码的项目,这部分代码将处理与服务器的通信,以及与其他Silverlight或Flash应用的数据交换。数据传输可能利用JavaScript Bridge(Silverlight与HTML页面...

Global site tag (gtag.js) - Google Analytics