设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源分享平台

flash8与javascript集成

来源:136z.Com 作者:佚名 时间:2005-12-26 11:38:28
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

7.

代码:

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方法允许JavaScript调用Flash时间上函数,基本的语法结构如下:

代码:

ExternalInterface.addCallback(functionID:String,instance:Object,functionName:Function);

与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可以调用Flash的onChang函数。最后,我们针对按钮创建事件来调用JavaScript命令。

你需要发布swf和HTML,然后用编辑软件打开编辑器,如果你只是从Flash调用javascirpt,那么你什么也不用做。但是如果你需要使用javascirpt调用Flash函数,还有一些小的工作需要做。

在tilte标签的下方加入下面的JavaScript代码:如下:

代码:

<script language=JavaScript>

var me; //代表swf的id

//获取正确的引用

[1] [2]  下一页

Tags:

  • 好的评价 如果您觉得好,就请您
      0%(0)
  • 差的评价 如果您觉得差,就请您
      0%(0)
  • 相关文章
    广告赞助

    文章随便看看 设计素材 建站学院 网页模板 视频教程

    网友评论

    共有 0 位网友发表了评论,得分 0 分,平均 0 分    查看完整评论

    用户名: 查看更多评论

    分 值:100分 85分 70分 55分 40分 25分 10分 1分

    内 容:

             通知管理员 验证码: