ActionScript与JavaScript在教学中的相互调用.doc
文本预览下载声明
ActionScript与JavaScript在教学中的相互调用
张 智
(三峡电力学院,湖北 宜昌 443000)
摘要:本文重点讨论了ActionScript与JavaScript在教学中的相互调用及控制。
关键词:ActionScript语言;JavaScript语言;相互调用
1.问题的由来
ActionScript是Flash中的内置编程语言,JavaScript是网页浏览器采用的网页文本编程语言。虽然这两种编程语言并不相同,但如果在教学中将二者结合起来相互调用,却可以完成许多运用单一编程方式不能完成的网页控制功能。
JavaScript是由Netscape公司开发的一种基于对象和事件驱动并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java脚本语言一起实现在一个Web页面中链接多个对象并与Web客户实现交互。像其他脚本语言一样,JavaScript同样也是一种解释性语言,它采用小程序段的方式实现编程,提供一个简易的开发过程。它的基本结构形式与C、C++、VB或Delphi等十分类似。但它不像这些语言一样,需要先编译,而是在程序运行过程中被逐行地解释。它与HTML标识语言结合在一起,非常方便用户的使用和操作。
ActionScript是Flash专属的程序语言,它是在JavaScript标准上发展起来的。ActionScript的语法与样式与JavaScript非常相似,但ActionScript的主要作用是控制Flash动画影片的行为。
为什么需要从Flash调用并执行JavaScript程序呢?这是因为ActionScript是Flash的内置程序,它主要是为控制Flash影片行为而设计的,可是有时我们需要从Flash影片中控制影片之外的浏览器,例如打开新的浏览器窗口、快速移动浏览器窗口的位置或使浏览器窗口中的内容进行滚屏等——这些用户需求不能在Flash中通过ActionScript完成。这种情况下,只有调用JavaScript程序才能满足用户的要求。
为什么需要在JavaScript程序中控制Flash呢?这是因为JavaScript程序可以控制浏览器以及网页文件里面的对象。例如,存取文字方块的内容、设定文件的背景色和加载图片等。但是,如果要在网页中控制Flash影片对象,这就有必要调用 Flash中的ActionScript 来完成。
执行Flash对象的方法,或者存取属性的JavaScript语法如下:
Document. Flash 对象名称·方法名称()
document.Flash 对象名称·属性
上面的语法适用于IE和Netscape浏览器,但是Netscape 6.0和6.01版不支持。
2.在Flash影片中呼叫JavaScript函数控制浏览器窗口
怎样才能在Flash影片中呼叫JavaScript函数来控制浏览器窗口呢?
直接在Flash的内置程序的ActionScript中加入JavaScript程序语句肯定行不通。显然,ActionScript与JavaScript不是相同的语言编程系统,在ActionScript中不能直接识别并编译JavaScript语句。
如果在Flash制作的影片中,通过一个呼叫函数呼叫JavaScript程序,另外把完整的JavaScript程序写在Flash影片中,这样就可以当Flash播放指针指向呼叫指令时,就执行JavaScript程序,达到控制浏览器窗口的目的。
下面介绍这种方法。
getURL( ) 函数是Flash中一个十分重要的动作指令,它可以直接呼叫JavaScript程序。getURL( )函数的实际作用是给Flash对象添加超级链接,包括电子邮件链接。它可以利用绝对路径指定一个URL,并将此URL的网页内容载入设置的视窗中,也可以指定传送变量至指定URL中的应用程序,直接呼叫JavaScript函数。
例如,在Flash MX中第1帧(空白关键帧)打开动作指令窗口,输入下面的语句:
getURL(“JavaScript: alert(‘呼叫JavaScript函数控制浏览器窗口’);”):
将命令浏览器打开一个警告窗,并显示“呼叫JavaScript函数控制浏览器窗口”的信息。
但要注意,笔者经过实践证明,并非所有的浏览器都支持从getURL( )函数执行JavaScript!目前,Mac版的IE4.5和以前的版本、Windows和 Mac 的Netscape6.0和6.01版都不支持。而且当浏览器不支持getURL()函数时,Netscape浏览器警告窗口的信息会出现乱码。
当然,也可以通过Flash中的影片剪辑与按钮来呼叫JavaScript函数。例如,在 Flash影片的按钮中,可以为按钮赋予指令:
on(
显示全部