winform 通过 html 与swf 交互 简单案例

在上一篇 winform 与 html 交互 简单案例 中讲了winform与html之间的简单交互,接下来的内容是在winform中以html为中转站,实现将swf嵌入winform中并实现交互。

1.首先建立一个fla文件,函数ExternalInterface.addCallback("接口函数:来源js中",返回处理函数:as中接收js数据的相关处理);函数ExternalInterface.call("接口函数:来源js中",参数);

as关键代码:

var num:int;

if(flash.external.ExternalInterface.available)
{
    flash.external.ExternalInterface.addCallback("swfHello",swfHello);
}

btn.addEventListener(MouseEvent.CLICK,clickFun);
function clickFun(e:MouseEvent)
{
    //调用js
    if(flash.external.ExternalInterface.available)
    {
        flash.external.ExternalInterface.call("asCallJs","as 调用 js");
    }
}

function swfHello()
{
    //js返回
    num++;
    txt.text = String("js 调用 as"+num);
}

2.html中需要对as发出的请求进行处理。<style></style>标签中是对html以及将加载的swf进行布局。<object></object>中则是对swf文件进行加载,这里加载的swf文件名为test.swf,而这个swf对象命名为“myFlash”。

html代码:

<html>
    <head>
        <title>this is a test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #000000;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>

        <script type ="text/javascript">
            function Hello() {
                 window.external.Hello();//alert("hello");
             }

             function WfToHtml() {
                 alert("wf调用html里面的js函数");
             }

             function swfHello() {
                 try {
                     if (myFlash) {
                         myFlash.swfHello();
                     }
                 } catch (e) {
                }
             }        //as调用js js调用c#
             function asCallJs(str) {
                 alert("你好:" + str);
                 window.external.Hello();
             }
        </script>
    </head>
    <body>
        <button id="btn" onclick="Hello()">hello</button>
        <button id="btn2" onclick="swfHello()">swfHello 触发</button>
        <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100%" height="100%" id="myFlash" align="middle">
        <param name="allowScriptAccess" value="always" />
        <param name="movie" value="test.swf" />
        <param name="wmode" value="transparent" />
        <param name="quality" value="high" />
        <param name="bgcolor" value="#ffffff" />
        <embed src="test.swf" quality="high" bgcolor="#ffffff" width="100%" height="100%" name="myFlash" align="middle" allowscriptaccess="always" swliveconnect="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
    </body>
</html>

3.至于c#代码同上一篇,未变。

至此,已经实现了如何在winform中通过html(js)加载swf,这样与直接加载swf对比了有了更多的交互,可以外接其他设备通过js同winform以及flash进行交互,实现多端控制。

初学者,内容简单,哈哈。。。

winform 通过 html 与swf 交互 简单案例

时间: 2024-10-04 15:53:21

winform 通过 html 与swf 交互 简单案例的相关文章

winform 与 html 交互 简单案例

本文主要简单的记录winform如何与html文件中的信息如何进行交互,即在winform中加载html界面,从而可以进行相互调用. 1.新建一个winform项目,若要在winform中加载html,需要一个webBrowser控件. 2.新建一个html页面,这里命名为“test.htm”. 3.c#代码: //为了使网页能够与winform交互 将com的可访问性设置为真 [System.Security.Permissions.PermissionSet(System.Security.

iOS开发——网络开发OC篇&amp;OC与JS交互简单案例

OC与JS交互简单案例 网页开发中三个重要的知识,这里就不详细介绍了! Html:页面代码 Css:样式 javascript:响应 先来看一段html的简单代码,里面涉及了上面的三个部分(很简单) 1 <html> 2 <!--描述网页信息--> 3 <head> 4 <meta charset="UTF-8"/> 5 <title>hello world</title> 6 <script> 7 f

Ajax与ashx异步请求的简单案例

Ajax与ashx异步请求的简单案例: 前台页面(aspx): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=

keepalived简单案例

---------------------------------- 一.前言 二.环境 三.Keepalived体系架构 四.安装Keepalived 五.案例配置 ---------------------------------- 一.前言 keepalived是一个类似于layer3,4&5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的

[Design Pattern] Mediator Pattern 简单案例

Meditor Pattern,即调解模式,用一个调解类类处理所有的沟通事件,使得降低多对象之间的沟通难度,属于行为类的设计模式.为了方便理解记忆,我也称其为,沟通模式. 下面是一个调解模式的简单案例. ChatRoom 提供公用发送短信的方法.User 全部通过 ChatRoom 类发送信息进行沟通.MediatorPatternDemo 演示调解模式. 代码实现 ChatRoom 提供发送信息的方法 public class ChatRoom { public static void sho

[Design Pattern] Iterator Pattern 简单案例

Iterator Pattern,即迭代时模式,按照顺序依次遍历集合内的每一个元素,而不用了解集合的底层实现,属于行为类的设计模式.为了方便理解记忆,我也会称其为遍历模式. 下面是一个迭代器模式的简单案例. Iterator 定义了迭代接口, 仅 hasNext 和 next 两个方法.Container 定义了集合的接口,必须包含一个返回迭代器类 Iterator 的方法.NameRepository 是容器的具体类,实现 Container 接口,并拥有一个内部类 NameIterator

[Design Pattern] Observer Pattern 简单案例

Observer Pattern,即观察者模式,当存在一对多关系,例如一个对象一有变动,就要自动通知被依赖的全部对象得场景,属于行为类的设计模式. 下面是一个观察者模式的简单案例. Observer 定义观察者的接口,定义需要观察的对象,已经被通知的接口.BinaryObserver, OctalObserver, HexaObserver 各自实现了 Observer 接口. Subject 是被观察的对象,记录了观察该对象的观察者列表,自身有变动,即可通知观察者列表中的各个观察者. 代码实现

[Design Pattern] Command Pattern 简单案例

Command Pattern, 即命令模式,把一个命令包裹在一个对象里面,将命令对象传递给命令的执行方,属于行为类的设计模式 下面是命令模式的一个简单案例. Stock 代表被操作的对象.Order 定义命令的接口,BuyStock, SellStock 是具体类,实现 Order 接口.Broker 是命令的执行方.CommandPatternDemo 演示命令模式. 代码实现 Order, 命令接口 public interface Order { public void execute(

Winform启动隐藏,WebBrowser交互JS

一.启动隐藏 Winform比较奇怪,Load的时候设置Visiable=false,无效.webBrowser_DocumentCompleted之后调用hide隐藏了窗体,但是在notifyIcon调用show也不能打开窗体.各种奇葩问题.最后stackOverFlow上找到答案.设置透明度,和取消显示在任务栏. private void Form1_Load(object sender, EventArgs e) { webBrowser1.ObjectForScripting = thi