浅谈Flash从外部容器获取数据的途径及方法

2022-09-12

Flash是一种交互式矢量多媒体技术, 目前在多媒体领域的应用十分广泛。使用Flash及相关制作软件, 可以创建交互式网站、动画、丰富媒体广告、指导性媒体、用户界面和游戏等等。

Internet上的swf文件, 可以作为一个独立的flash应用程序而存在, 也可以被嵌套在某个外部容器 (可以是某个网页或应用程序) 里而作为其中的一部分。那么, flash与其外部容器之间的通信就成为了必需。

Flash与容器之间的通信是双向的, 可从容器到flash通信, 也可以从flash向容器通信。通信的内容可以是发送参数 (传递值) , 也可是调用某个函数或方法。而通信的实现方法则因通信的方向不同而不同。这里主要介绍Flash从外部容器中获取数据的方法和途径, 主要有三种: (1) 通过HTML的param标签获取数据; (2) 通过Flash的loadVariables方法获取数据; (3) 通过外部API调用flash中的指定函数来获取数据。

1 通过HTML的param标签获取数据

语句格式为:

此时, 名为myflash的swf文件中的mynum变量就能接受到值num。

如果要在同一个HTML文件中传送多个变量给一个swf文件, 则书写格式为:

运行此HTML文件, 就可以在swf中直接显示或引用变量了。 (注意:实际使用时, “?”后直接跟“&变量名”, 才能将值传递过去) 。

上面是通过HTML里调用swf带参数的方法来实现向Flash中传递参数的, 但Flash与外部文件“联姻”的最典型方法是Flash直接读取是TXT文件和CGI, PHP, ASP文件来获取数据。前者可在客户机运行, 后者要服务器支持, 并且都需要利用到loadVariables方法。

2 利用loadVariables方法获取数据

2.1 从TXT文本文件中读取变量

首先建立一个TXT文件, 文件中的变量书写格式为:

其中“MC1”是变量名, “data”是变量值。

如果要在同一个TXT文件中设置多个变量则书写格式为:

建立好文本之后, 接着在Flash中写入Action Script脚本。

选择"Load Variables Into Location"在URL输入框内输入创建好的TXT文件路径及文件名。

Action Script脚本示例如下:

//将mydata文本文件中的数据载入到level 0层上的影片剪辑 (MC) 中

2.2 从CGI, PHP, ASP文件中读取变量

以ASP为例, 与从文本文件中读入数据一样, 只要ASP程序的执行结果也显示成“变量名=该变量的值&…”这种格式就可以了。

语句格式:

Response.Write“变量名=该变量的值&…”

和上面的调用从TXT文件中调用一样, 只不过把mydata.txt文件换成madata.asp文件就行了, 调用过程如下:

3 通过外部API调用flash中的指定函数来获取数据

外部API是一个由flash提供的和容器之间实现直接通信的应用程序编程接口, 又叫ExternalInterface类。通过外部API, 可实现双向的通信, 从容器到flash, 容器可以调用Flash中的指定函数;反过来, 从flash到容器, flash可以调用容器HTML页上的任何JavaScript函数。

容器可以调用Flash中的指定函数, 而非所有函数, 而指定的函数则可以由External Interface类的提供的方法addCallback指定, 该方法的函数原型如下:

addCallback方法的原型中, 参数method Name指示容器调用ActionScript函数时可使用的名称;参数instance指示this在该方法中被解析成的对象, 一般可以将参数i nstance设为“null”;参数method指示要从容器调用的ActionScript方法。

打开flash, 在ActionScript脚本栏添加以下代码:

以上代码先定义了一个函数callByJava, 作用是设置动态文本的值为参数str, 然后将该函数注册为可从容器调用, 调用的函数名为callFlash。这样, 容器就可以通过调用函数callFlash (sendText) 来设置flash中的动态文本的内容。

4 结语

对于以上三种Flash从外部容器获取数据的方法, 利用外部API调用flash中的指定函数来获取数据的方法更为灵活、更为通用, 因为它可以通过调用任何已注册为可从容器调用的函数来完成任何操作, 而通过HTML的param标签获取数据的方法却只能传递字符串类型的参数, 通过Flash的loadVariables方法获取数据的方法也只是可以调用由Flash Player提供的有限的函数方法而已。

摘要:Flash即可以作为一个独立的Flash应用程序而存在, 也可以被嵌套在网页或应用程序等外部容器中。该文从通信原理入手, 阐述了Flash从外部容器获取数据通信的途径及方法, 并分别做了优缺点分析和比较。

关键词:Flash,数据通信,loadVariables,外部API

参考文献

[1] (美) Colin Moock.赵声攀译.Action Script权威指南[M].北京:机械工业出版社, 2003.

[2] 章精设, 缪亮, 白香芳.Flash Action Script2.0编程技术教程[M].北京:清华大学出版社, 2005.

[3] Joey Lott Robert Reinhardt.Flash8ActionScript宝典[M].北京:电子工业出版社, 2006.

[4] 刘明伟, 任永攀, 黄兴.Flash与后台[M].北京:清华大学出版社, 2007.

[5] 胡本峰, 赵辉.ASP动态网站开发从基础到实践.北京:电子工业出版社, 2007.

上一篇:教学促德育,德育推教学下一篇:从传统道德教育观看高校德育教育的缺失