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函数,以及反过来在JavaScript中调用Flex的方法。这种技术通常被称为“Bridge”或“跨域通信”。 在Flex中,我们可以使用`...
JavaScript中的`saveAs`函数通常与FileSaver.js库关联,这是一个用于在浏览器中实现文件保存功能的开源库。在FireFox中,由于安全和隐私的考虑,原生的JavaScript API并不支持直接下载文件,因此FileSaver.js这样的...
在IT领域,尤其是在Web开发中,Flash和HTML之间的通信是一个重要的技术点,它允许富媒体内容(如Flash)与网页的其他部分(如JavaScript)进行交互。本示例"调试flash与html通讯的例子"旨在帮助开发者理解并实现这种...
JavaScript是一种广泛应用于网页和网络应用的编程语言,它在浏览器环境中执行,允许开发者与用户进行交互,处理数据,以及控制页面的行为。在Firefox浏览器中,JavaScript可以用来编写脚本,帮助用户将当前网页设定...
在上述代码中,`AutomateExcel`函数是一个例子,它通过`ActiveXObject`来与Excel应用程序交互,这适用于IE浏览器。对于其他现代浏览器,可以使用`FileSaver.js`库或者`xlsx`库来创建Excel文件。例如,`xlsx`库可以将...
和声2 关于这个 SDK Harmony 的区块链 javascript 库,它提供了一种与 Harmony 区块链交互的更简单的方法。...环境下运行这个例子。 // import or require Harmony class const { Harmony } = require
本文主要讨论如何在Firefox和Internet Explorer(IE)这两个不同浏览器环境下获取`event`对象。 首先,让我们通过一个简单的例子来理解`event`的获取。考虑一个HTML按钮元素,它通过`onclick`属性触发`myFunc()`...
在本文中,我们将探讨如何使用JS实现一个功能,即允许用户将网页中文本框内的内容保存到本地,同时兼容IE、Chrome和Firefox等主流浏览器。 首先,我们需要一个HTML页面作为基础。HTML页面包含一个`<textarea>`元素...
在JavaScript中实现拖动层的效果是一项常见的交互设计需求,它可以使用户通过鼠标操作移动页面上的元素,例如在网页布局、拖放功能等场景中。在提供的代码示例中,我们看到两种实现方式,它们都能在IE、Chrome和Fire...
这篇笔记主要介绍了在Flash中使用ActionScript(AS)进行编程的一些基本概念和操作,包括对主场景的访问、事件监听、输出调试信息、影片剪辑的控制以及与XML数据的交互。以下是这些知识点的详细说明: 1. **主场景...
`pyecharts`是Python的一个开源项目,它实现了将Python数据与ECharts JavaScript库相结合的功能,使得Python开发者能够轻松地创建出动态、交互式的Web图形。ECharts是由百度开发的一个强大的JavaScript图表库,支持...
这个方法依赖于ActiveX对象,它是一个微软特有的技术,允许在Web浏览器中与本地应用程序交互,如Word。 以下是这个JavaScript代码的详细解释: 1. **创建Word应用对象**: `var oWordApp = new ActiveXObject(...
`Playwright`是由Microsoft开发的一个跨平台库,用于自动化现代Web浏览器(如Chromium、Firefox和WebKit)。它提供了API来控制浏览器的各个方面,包括页面导航、元素交互、网络请求和响应等。`Playwright`的主要优势...
在IE和Chrome中,这样的定义会导致语法错误,而Firefox则会忽略默认值。为了解决这个问题,可以使用`arguments`对象来模拟默认参数。`arguments`是一个类数组对象,包含了函数调用时传入的所有参数。下面是如何使用`...
7. **浏览器兼容性**:`Sys`对象中的`b`变量是一个对象,包含了针对不同浏览器的布尔值,如`ie`、`opera`、`safari`、`firefox`和`chrome`。这些值用于检测用户使用的浏览器类型,确保代码在不同环境下能正常工作。 ...
这个功能不仅适用于新手学习,也适合直接应用于实际项目,因为它具有良好的兼容性,能适应IE、Firefox和Chrome等主流浏览器。 首先,我们需要引入抽奖插件`lottery.js`。在HTML文件中,通过在`<script>`标签内指定`...
它允许Web应用程序在不刷新整个页面的情况下与服务器交换数据。这个实例化的`getHTTPRequest`函数是为了兼容不同浏览器而设计的,确保无论用户使用的是现代浏览器还是较旧版本的Internet Explorer,都能正确创建...
总结来说,通过这段代码,我们可以学习到如何使用JavaScript来实现`textarea`光标的动态定位,这对于提升用户在多行文本编辑场景下的交互体验具有重要意义。同时,了解不同浏览器对光标操作的支持差异也是前端开发者...
下一章,我们将系统的了解关于XML的各种术语。 二.DTD的有关术语 什么是DTD,我们上面已经简略提到。DTD是一种保证XML文档格式正确的有效方法,可以比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用...
4. **支持的浏览器**:为了确保跨浏览器的兼容性,该版本支持多种浏览器,包括但不限于 Internet Explorer、Firefox、Chrome 等主流浏览器。 #### 三、开始使用 RichFaces 1. **下载 RichFaces 3.2.0**:开发者...