[as-js]JavaScript调用ActionScript
[问题描述]:通过JavaScript调用ActionScript中的变量、方法
[简析]:通过ExternalInterface类来实现。最好还是不要直接调用变量,推荐通过调用方法来获取变量值
[实例代码]:
1、flash8创建空fla文档,保存为test.fla,帧上写如下代码:
ActionScript Code:
- import flash.external.*;
- var methodName:String = "getTestNum";
- var instance:Object = null;
- var method:Function = getTestNum;
- var wasSuccessful:Boolean = ExternalInterface.addCallback (methodName, instance, method);
- var testNum:Number;
- function getPctLoaded ()
- {
- testNum = 0;
- return testNum;
- }
2、新建test.html网页,代码如下
html Code:
- < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- </head>
- <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" id="testSWF" width="550" height="400" title="test">
- <param name="movie" value="test.swf" />
- <param name="quality" value="high" />
- <embed src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400"></embed>
- </object>
- <form>
- <input type="button" onclick="callExternalInterface()" value="Call ExternalInterface" />
- </form>
- <script>
- function callExternalInterface() {
- alert(thisMovie("testSWF").getTestNum());
- }
- function thisMovie(movieName) {
- if (navigator.appName.indexOf("Microsoft") != -1) {
- return window[movieName]
- }
- else {
- return document[movieName]
- }
- }
- </script>
- <body>
- </body>
- </html>

Leave a Reply