`

一个js与as3交互的例子(Firefox下正常)

    博客分类:
  • as3
 
阅读更多

 js调用flash里面的方法,控制flash里面MC初始出现的X、Y坐标位置。

 

as3的代码:

Security.allowDomain("*");
var mc:MC;
var mcx:Number=200;
var mcy:Number=100;
txt.multiline = true;
txt.wordWrap = true;
txt.border = true;
txt.text = "Initializing...\n";
if (ExternalInterface.available) {
    try {
        txt.appendText("Adding callback...\n");
        ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
        if (checkJavaScriptReady()) {
            txt.appendText("JavaScript is ready.\n"+mcx+';'+mcy);
            mc = new MC();
            addChild(mc);
            mc.x = mcx;
            mc.y =mcy;
        } else {
            txt.appendText("JavaScript is not ready, creating timer.\n");
            var readyTimer:Timer = new Timer(100, 0);
            readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
            readyTimer.start();
        }
    } catch (error:SecurityError) {
        txt.appendText("A SecurityError occurred: " + error.message + "\n");
    } catch (error:Error) {
        txt.appendText("An Error occurred: " + error.message + "\n");
    }
} else {
    txt.appendText("External interface is not available for this container.");
}

function receivedFromJavaScript(val1:Number,val2:Number):void {
    mcx = val1;
    mcy = val2;
    txt.appendText("JavaScript is ready.\n"+mcx+';'+mcy);
}
function checkJavaScriptReady():Boolean {
    var isReady:Boolean = ExternalInterface.call("isReady");
    return isReady;
}
function timerHandler(event:TimerEvent):void {
    txt.appendText("Checking JavaScript status...\n");
    var isReady:Boolean = checkJavaScriptReady();
    if (isReady) {
        mc = new MC();
        addChild(mc);
        mc.x = mcx;
        mc.y =mcy;
        Timer(event.target).stop();
    }
}


html代码:

<html>
<head>
 <script language="JavaScript">
   
     var jsReady = false;
     function isReady() {
         return jsReady;
     }
     function pageInit() {
         jsReady = true;
         sendToActionScript(30,30);
     }
     function thisMovie(movieName) {
     
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document.embeds[movieName]; //document[movieName];
         }
     
     /*
     if (window.document[movieName])
       {
          return window.document[movieName];
       }
       if (navigator.appName.indexOf("Microsoft Internet")==-1)
       {
          if (document.embeds && document.embeds[movieName])
          return document.embeds[movieName];
       }
       else
       {
          return document.getElementById(movieName);
       }
       */
      
     }
     function sendToActionScript(val1,val2) {
         thisMovie("A").sendToActionScript(val1,val2);
     }
     function sendToJavaScript(value) {
         //document.forms["form1"].output.value += "ActionScript says: " + value + "\n";
     }
 
</script>
</head>
<body>
 <div id="t_divs1" style="position:absolute;width:600px;height:500px;top:50px;left:50px;">
 <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="600" height="500" id="A" name="A" align="center">
<param name="movie" value="A.swf" />
<param name="quality" value="medium" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="A.swf" quality="medium" width="600" height="500" name="A" id="A" align="center" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
 </div>
<!--
<input type="button" value="Send" onclick="sendToActionScript(200,200);" /><br />
-->
<script language="JavaScript">

 Ret = window.setTimeout(function(){
                    pageInit();
                }, 1000);               //此处延迟是为了解决firefox下js初始调用flash方法找不到的问题

</script>
   
</body>
</html>

分享到:
评论

相关推荐

    flex和javascript交互例子

    标题"flex和javascript交互例子"指向了这个主题的核心——如何在Flex应用中调用JavaScript函数,以及反过来在JavaScript中调用Flex的方法。这种技术通常被称为“Bridge”或“跨域通信”。 在Flex中,我们可以使用`...

    JavaScript FireFox savaAS

    JavaScript中的`saveAs`函数通常与FileSaver.js库关联,这是一个用于在浏览器中实现文件保存功能的开源库。在FireFox中,由于安全和隐私的考虑,原生的JavaScript API并不支持直接下载文件,因此FileSaver.js这样的...

    调试flash与html通讯的例子

    在IT领域,尤其是在Web开发中,Flash和HTML之间的通信是一个重要的技术点,它允许富媒体内容(如Flash)与网页的其他部分(如JavaScript)进行交互。本示例"调试flash与html通讯的例子"旨在帮助开发者理解并实现这种...

    javascript在firefox下设为首页的代码

    JavaScript是一种广泛应用于网页和网络应用的编程语言,它在浏览器环境中执行,允许开发者与用户进行交互,处理数据,以及控制页面的行为。在Firefox浏览器中,JavaScript可以用来编写脚本,帮助用户将当前网页设定...

    java,jsp,javascript中如何实现将统计表格保存成excel文件

    在上述代码中,`AutomateExcel`函数是一个例子,它通过`ActiveXObject`来与Excel应用程序交互,这适用于IE浏览器。对于其他现代浏览器,可以使用`FileSaver.js`库或者`xlsx`库来创建Excel文件。例如,`xlsx`库可以将...

    harmonyos2-Harmony-sdk-core:一个和声的javascriptsdk

    和声2 关于这个 SDK Harmony 的区块链 javascript 库,它提供了一种与 Harmony 区块链交互的更简单的方法。...环境下运行这个例子。 // import or require Harmony class const { Harmony } = require

    火狐和ie下获取javascript 获取event的方法(推荐)

    本文主要讨论如何在Firefox和Internet Explorer(IE)这两个不同浏览器环境下获取`event`对象。 首先,让我们通过一个简单的例子来理解`event`的获取。考虑一个HTML按钮元素,它通过`onclick`属性触发`myFunc()`...

    js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器 <font color=red>原创</font>

    在本文中,我们将探讨如何使用JS实现一个功能,即允许用户将网页中文本框内的内容保存到本地,同时兼容IE、Chrome和Firefox等主流浏览器。 首先,我们需要一个HTML页面作为基础。HTML页面包含一个`&lt;textarea&gt;`元素...

    javascript实现拖动层效果代码(符合标准且兼容IE,chrome,firefox)

    在JavaScript中实现拖动层的效果是一项常见的交互设计需求,它可以使用户通过鼠标操作移动页面上的元素,例如在网页布局、拖放功能等场景中。在提供的代码示例中,我们看到两种实现方式,它们都能在IE、Chrome和Fire...

    Flash笔记(1)

    这篇笔记主要介绍了在Flash中使用ActionScript(AS)进行编程的一些基本概念和操作,包括对主场景的访问、事件监听、输出调试信息、影片剪辑的控制以及与XML数据的交互。以下是这些知识点的详细说明: 1. **主场景...

    PyPI 官网下载 | pyecharts-0.5.0.tar.gz

    `pyecharts`是Python的一个开源项目,它实现了将Python数据与ECharts JavaScript库相结合的功能,使得Python开发者能够轻松地创建出动态、交互式的Web图形。ECharts是由百度开发的一个强大的JavaScript图表库,支持...

    可以将word转成html的js代码

    这个方法依赖于ActiveX对象,它是一个微软特有的技术,允许在Web浏览器中与本地应用程序交互,如Word。 以下是这个JavaScript代码的详细解释: 1. **创建Word应用对象**: `var oWordApp = new ActiveXObject(...

    Python库 | pytest-playwright-0.0.3.tar.gz

    `Playwright`是由Microsoft开发的一个跨平台库,用于自动化现代Web浏览器(如Chromium、Firefox和WebKit)。它提供了API来控制浏览器的各个方面,包括页面导航、元素交互、网络请求和响应等。`Playwright`的主要优势...

    javascript中直接写php代码的方法

    在IE和Chrome中,这样的定义会导致语法错误,而Firefox则会忽略默认值。为了解决这个问题,可以使用`arguments`对象来模拟默认参数。`arguments`是一个类数组对象,包含了函数调用时传入的所有参数。下面是如何使用`...

    原生javascript实现DIV拖拽并计算重复面积

    7. **浏览器兼容性**:`Sys`对象中的`b`变量是一个对象,包含了针对不同浏览器的布尔值,如`ie`、`opera`、`safari`、`firefox`和`chrome`。这些值用于检测用户使用的浏览器类型,确保代码在不同环境下能正常工作。 ...

    php+lottery.js实现九宫格抽奖功能

    这个功能不仅适用于新手学习,也适合直接应用于实际项目,因为它具有良好的兼容性,能适应IE、Firefox和Chrome等主流浏览器。 首先,我们需要引入抽奖插件`lottery.js`。在HTML文件中,通过在`&lt;script&gt;`标签内指定`...

    javascript一个无懈可击的实例化XMLHttpRequest的方法

    它允许Web应用程序在不刷新整个页面的情况下与服务器交换数据。这个实例化的`getHTTPRequest`函数是为了兼容不同浏览器而设计的,确保无论用户使用的是现代浏览器还是较旧版本的Internet Explorer,都能正确创建...

    将光标定位到textarea的某一行的javascript代码

    总结来说,通过这段代码,我们可以学习到如何使用JavaScript来实现`textarea`光标的动态定位,这对于提升用户在多行文本编辑场景下的交互体验具有重要意义。同时,了解不同浏览器对光标操作的支持差异也是前端开发者...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    下一章,我们将系统的了解关于XML的各种术语。 二.DTD的有关术语 什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用...

    RichFaces3.4

    4. **支持的浏览器**:为了确保跨浏览器的兼容性,该版本支持多种浏览器,包括但不限于 Internet Explorer、Firefox、Chrome 等主流浏览器。 #### 三、开始使用 RichFaces 1. **下载 RichFaces 3.2.0**:开发者...

Global site tag (gtag.js) - Google Analytics