主页  范文大全   设计学院   SEO研究   免费资源   网赚大全  QQ资源区    电影下载  在线电影   短信&笑话   校内网   理财知识   站长Blog   访客留言   顶级QQ百科

         声明:本站所有资料素材均是由站长精心整理搜集的,属于原创。我们同意您的转载和复制,但是在转载复制时请保留文字出处。本站资料全部免费使用,无需注册,力求打造华北最强最大的免费资源网站。

    在过去的一年里,对于开发人员来说使用flash与javascript通讯总会碰到一些麻烦的事情,从flash调用javascript函数已经没有什么问题了因为们可以使用getURL方法来直接调用但是要想使用javascript返回flash在许多浏览器上几乎是不可能但是现在可以了
Flash8的出现这件事就变比较容易了

  The ExternalInterface API
  
  之前们使用flash调用javascript函数一般使用这样方法:

getURL(“javascript:alert(‘hello webstudio.com.cn’);”);

  但是使用这种方法从flash调用javascript函数仍存在许多困难特别是在处理多个javascript函数调用问题上ExternalInterface API可以与javascript实现无缝调用并且它能力达到可以在flash时间线使用

  在我们正式进入它的使用方法之前们需要确保在flash时间上可用就要导入它类向这样:

import flash.external.*;

  现在它已经允许们做第一件事就是可以调用javascript函数了

  Call 调用方法

  call方法对于ExternalInterface对象来说是一个静态方法,也就是说们不需要使用ExternalInterface对象实例来调用方法们可以直接通过对象类来调用向这样:

ExternalInterface.call(functionName:String,Parameters);

这个方法有两个参数:

· functionName – 你想要调用的javascript函数名要以字符串形式

· Parameters – 需要传递给javascript函数的参数,用逗号分开是可选

这些是基本内容现在让们来看一个例子:

1. 创建一个flash文档命名为external1.fla.

2. 创建两个层上面的层命为AS下面层命名为”内容”

3. 在内容层里面,创建一个文本域,将它设置为输入文本域,打开显示边框以方便你能看到并给它取个名字为alert_txt,将它放在场景左边

4. 仍然在内容这一层上,拖动一个按钮组件于场景中并把它放在动态文本的右边设置它label为”Alert”并给它起个名字为alert_butn.

5. 选择上方as层在第一帧上输入代码

6. //调用alert

import flash.external.*; alert_butn.clickHandler = function() { ExternalInterface.call("alert", alert_txt.text); }

前面部分代码是导入ExternalInterface类包然后为按钮组件设置事件,当点击时调用javascript函数并将文本中输入文本通过externalInterface传递给javascript函数

现在发布你的影片,将它和html放在服务器上,当你在服务器上测试时不论你在文本中输入什么信息,它都将显示在alert对话框中,但是如果你在本地测试,你可能就会发现当你点击按钮时,什么也没发生这是由flashplayer的安全特性造成

   上面这个范例是一个方法的例子,使用getURL方法也可以做到,然而externalinterface不只是能做到这些,除了发送信息给javascript它还可以通过addCallback方法接收从javascript返回信息
  addCallback 方法

  AddCallback方法允许j

1 1/mtdh/Flash/200702/58_212 1/mtdh/Flash/200702/58_313 1/mtdh/Flash/200702/58_21

avascript调用flash时间上函数基本语法结构如下:

import flash.external.*;
alert_butn.clickHandler = function() {
ExternalInterface.call("alert", alert_txt.text);
}

与call方法类似,它也是一个静态方法它有三个参数

·functionID - 从 JavaScript 调用 ActionScript 函数时可使用名称此名称不必与 ActionScript 方法实际名称匹配

·instance - this 在该方法中被解析成对象此对象不一定是在其上可找到该方法对象您可以指定任何对象(或 null)

·functionName - 要从 JavaScript 调用 ActionScript 方法

现在让我们开始一个例子在这个例子中们将使用flash调用javascript的命令来请示用户输入色值,当色值输入后点击ok对象返回到flash并更改它色彩如下方法:

1.创建一个flash文档命名为external2.fla.

2.与第一个例子相同创建两层上层命名为as.下层命名为“内容”

3.在内容层拖动一个按钮组件至场景中,放在左上方将label设为”变色”,实例名为change_butn.

4.确保当前在”内容层”,绘制一个色值为0x000000盒子大小为100*100,当然这个没有限制

5.将这个方块转换为movieclip.实例名称命名为rec_mc.

6.在第一帧上输入代码如下:

import flash.external.*;
//改变方块色彩
function onChange(clr:Number) {
var temp_color:Color = new Color(rec_mc);
temp_color.setRGB(clr);
}
//允许javascript调用onChang函数
ExternalInterface.addCallback("onChange", this, onChange);
//打开命今窗口
change_butn.clickHandler = function() {
ExternalInterface.call("callPrompt", "你想用什么色彩? (ex: 0xff0000)");
}

  在代码的前边我们要先导入externalinterface类包,然后我们创建一个能改变场景中方块色彩的函数,完成后们调用addCallback方法以使javascript可以调用flashonChang函数最后们针对按钮创建事件来调用javascript命令
  你需要发布swf和html,然后用编辑软件打开编辑器,如果你只是从flash调用javascirpt那么你什么也不用做但是如果你需要使用javascirpt调用flash函数还有一些小工作需要做

  在tilte标签的下方加入下面javascript代码:如下:
<script language=JavaScript>
var me; //代表swfid
//获取正确引用
function getID(swfID) {
if (navigator.appName.indexOf("Microsoft") > -1) {
me = windowswfID;
} else {
me = documentswfID;
}
}
//下面这段调用onChang函数并返回到flash.
function makeCall(str){
me.onChange(str);

1/mtdh/Flash/200702/581xxysh  1/mtdh/Flash/200702/5811 2 1/mtdh/Flash/200702/58_313 1/mtdh/Flash/200702/58_31

}
//下面这个函数是被flash调用
function callPrompt(str){
makeCall(prompt(str));
}
</script>

开始们创建变量me来存放swf引用如果没有它们不能调用flash函数然后我们使用函数getID通过条件针对不同的浏览器来设置引用,之后,我们创建makeCall函数,用来调用flash函数最后们创建由flash来调用函数callPromt().它将调用makeCall函数来发送信息返回到flash.
  在html的body标签属性中加入onload,并设置它等于getID函数如下:

<body bgcolor="#ffffff" onload="getID(‘external2‘);">

注意,当我们设函数给onload事件们传递给它swf的id.它可以在swf嵌入位置找到,现在,当页初始化完成后,函数getID将被调用,变量me就会被设置以使javascript可以调用flash函数
将文件上传到服务器上,并进行测试,当你点击按钮并在提示中输入色彩值flash中方块色就会改变如下

1/mtdh/Flash/200702/58_21xxysh  1/mtdh/Flash/200702/5811 1/mtdh/Flash/200702/58_212 3 

教程录入:xxYsh.com    责任编辑:admin 
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 下一篇教程:
  • 推荐链接