JavaScript调用FLASH

| |
[2007/09/25 17:15 | 分类: Flash技术 | by gdgzboy ]
    在网页上用JS调用FLASH程序,比如一个视频网站,按照动态服务器程序产生一个URL,点击后,可以在预先制作完成的FLASH 播放器来播放.这次的小教程,只是简单的讲下,用JS调用AS程序,其实FLASH 8在这方面的资料很多.突然发现,从FLASH 2004到FLASH 8,FLASH资料多了很多啊.不过我们这次是说FLASH CS3,于时俱进嘛.
      首先,我们先打开FLASH制作接受端口程序来监听JS发送的事件:(我们这次的目的是发送一组字符,很简单的,如果往复杂了做,也是同样的道理)
      在FLASH CS3舞台上随便放个动态文本,把实例命名:astxt.接着输入代码:

//用ExternalInterface.addCallback来接受网页上用JS写的JsFunction程序,而beCalled是说明FLASH在
//接收到JS的时候,所发生的事件.
ExternalInterface.addCallback("JsFunction",beCalled);
//txtVar是从JS程序传送过来的变量.
function beCalled(txtVar):void {
  astxt.text = txtVar;
}

下面是在网页中写的代码,为了简化代码,我这里就写主要的几个地方.首先在FLASH下面插入一个


<div>
<form name="jsForm">
            <input type="text" size="10" value="你好" name="texts"></input>
            <input type="button" value="点我啊"
            <!-- 下面的代码就是点击网页上的代码后,所调用的程序,注意这个程序叫"callAS3"是放在
  <head></head>之内的.document.jsForm.texts.value就是需要传递的变量
  -->
            onclick="callAS3(document.jsForm.texts.value)">
</form>
</div>

在之内写上网页按钮点击后所调用的程序.

<script language="javascript" type="text/javascript">
  function callAS3(varText){
    if(navigator.appName.indexOf("Microsoft") != -1){
                                  //你们可看到JsFunction就是FLASH程序里监听的程序.而JsToAs就是我产生
                       //的SWF的名字,varText那就是变量参数拉.
            JsToAs.JsFunction(varText);
    }
    else{
                           window.document.JsToAs.JsFunction(varText);
    }
  }
</script>

     看,这就完成了用JS来调用FLASH.你可以在网页里的input里写入几个字符,点击按钮后,FLASH里的TEXT里就会出现你在网页上所输入的字符.

---------------------------------------------------------------------------
     反过来,如何用FLASH里的程序调用JS呢?也简单在刚才的FLASH里继续写.

//在舞台上放一个Button,命名为:btn.
btn.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(e:MouseEvent):void {
              //asFunction就是我们要在网页里写的程序.
  ExternalInterface.call("asFunction","哈哈,我是来自FLASH");
}
//按钮点击后,就会把"哈哈,我是来自FLASH"这句话传递到网页里.你可以在网页里建立一个TEXT来接收
//这个参数.;
[code]
在网页里的<body></body>之内写上
<form name="form2">
     <input type="text" size="10" name="accept"></input>
</form>
在网页的<head></head>里写上
<script language="javascript" type="text/javascript">
  function asFunction(varText) {
        document.form2.accept.value= varText;
  }
</script>

OK,这样网页 就可以从FLASH接受参数,或者由FLASH来调用外部的JS.
JS到AS,和AS到JS,基本也就这样了,这些都是最基础的东西.由于一边写一边调试的。估计有错误,如果你试了,有问题,可以告诉我.

    

            


作者:gdgzboy@牛C网
地址:http://www.niuc.net/post/206/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!



评论(0) | 引用(0) | 阅读(537)
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我