zoukankan      html  css  js  c++  java
  • as3 与js相互通信

    1.as和js通讯实例
    如果as3调用 JAVA script 中的函数直接在as中添加
    if (ExternalInterface.available) {
          ExternalInterface.call("sendToJavaScript",value);
         }
    ExternalInterface.available主要判断播放器是否位于提供外部接口的容器中,如果swf在不在网页中, ExternalInterface.call向外部api传递参数
    sendToJavaScript 就是js中的函数名(自定义) value 是你穿过来变量或值
    结下来你可以试着在网页中添加一个
    <script type="text/javascript">
    function sendToJavaScript(value){
    alert(value)
    }
    </script >这样flash中的value就会以alert弹出 这只是实现了第一步 ,当然做的时候建议用try抛出错误在测试

    2.js和as通讯实例
    在网页中写入
    <script type="text/javascript">
       function thisMovie(movieName) {
             if (navigator.appName.indexOf("Microsoft") != -1) {
                 return window[movieName];
             } else {
                 return document[movieName];
             }
         }//判断浏览器

         function sendTo ActionScript (value) {
             thisMovie("flash动画名称").sendToActionScript(value); 
         }
    </script>
    <form name="form1">
    <input type="text" name="input" value="" />
    <input type="button" value="Send" /><br />
       </form>
    注意flash动画名称 包括网页中flash在objct 中id也必须是flash的名称 王成了网页接下来看as3

    if (ExternalInterface.available) {
         try {
          ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
         } catch (e:Error) {
          trace(e.message)}
        } else {
    trace("External interface is not available for this container.");
        }//End if

    注意的是我们在做开发的时候可能直接在结束 游戏 过程中发送个请求掉用js js处理请求在返回个结果 这样其实flash读不出来 当然你可以做一个按钮请求 肯能as事件机制问题,
    还有就是   thisMovie("flash动画名称").sendToActionScript(value); 不能写在上面的 sendToJavaScript(value)的后面必须单独写个函数,然后调用这个函数

  • 相关阅读:
    docker 相关
    mongo 连接方式
    Redis 面试题
    Ubuntu如何挂载U盘
    python try异常处理之traceback准确定位哪一行出问题
    Opencv 基础用法
    CentOS 7 安装MongoDB 4.0(yum方式) 简单方便
    linux中pthread_join()与pthread_detach()详解
    C语言线程池 第三方库
    XML文件删除掉注释
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3162799.html
Copyright © 2011-2022 走看看