1. 在Flex中,ActionScript调用Javascript是比较简单的,说白了就是,在html里,怎么调用Javascript,在ActionScript就怎么调用就可以了
2. 如果用js调用as,就稍微麻烦一点,其实也比较简单

MXML代码:
1Javascript 调用 ActionScript 方法<?xml version="1.0" encoding="utf-8"?>
2Javascript 调用 ActionScript 方法<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="left" backgroundColor="white"
3Javascript 调用 ActionScript 方法    initialize="init()">
4Javascript 调用 ActionScript 方法
5Javascript 调用 ActionScript 方法    <mx:Label text="城市名称:"/>
6Javascript 调用 ActionScript 方法
7Javascript 调用 ActionScript 方法    <mx:List id="cityList" width="200" height="300" dataProvider="{cities}"/>
8Javascript 调用 ActionScript 方法
9Javascript 调用 ActionScript 方法    <mx:ArrayCollection id="cities">
10Javascript 调用 ActionScript 方法        <mx:String>北京</mx:String>
11Javascript 调用 ActionScript 方法        <mx:String>上海</mx:String>
12Javascript 调用 ActionScript 方法    </mx:ArrayCollection>
13Javascript 调用 ActionScript 方法   
14Javascript 调用 ActionScript 方法    <mx:Script>
15Javascript 调用 ActionScript 方法        <![CDATA[
16Javascript 调用 ActionScript 方法            private function init(): void
17Javascript 调用 ActionScript 方法            {
18Javascript 调用 ActionScript 方法                //注册回调函数供JavaScript调用
19Javascript 调用 ActionScript 方法                ExternalInterface.addCallback("callActionScript", asFunctionByJs);
20Javascript 调用 ActionScript 方法            }
21Javascript 调用 ActionScript 方法           
22Javascript 调用 ActionScript 方法            private function asFunctionByJs(city: String): void
23Javascript 调用 ActionScript 方法            {
24Javascript 调用 ActionScript 方法                cities.addItem(city);               
25Javascript 调用 ActionScript 方法            }
26Javascript 调用 ActionScript 方法        ]]>
27Javascript 调用 ActionScript 方法    </mx:Script>
28Javascript 调用 ActionScript 方法</mx:Application>
Javascript 调用 ActionScript 方法

HTML代码(这些代码都是flex builder自动生成的,用于将flash嵌入到网页里,不用仔细看这些代码,注意黄色背景的部分,这是关键部分,是我加入到)

  1Javascript 调用 ActionScript 方法<!-- saved from url=(0014)about:internet -->
  2Javascript 调用 ActionScript 方法<html lang="en">
  3Javascript 调用 ActionScript 方法
  4Javascript 调用 ActionScript 方法<!-- 
  5Javascript 调用 ActionScript 方法Smart developers always View Source.
  6Javascript 调用 ActionScript 方法
  7Javascript 调用 ActionScript 方法This application was built using Adobe Flex, an open source framework
  8Javascript 调用 ActionScript 方法for building rich Internet applications that get delivered via the
  9Javascript 调用 ActionScript 方法Flash Player or to desktops via Adobe AIR.
10Javascript 调用 ActionScript 方法
11Javascript 调用 ActionScript 方法Learn more about Flex at http://flex.org
12Javascript 调用 ActionScript 方法// -->
13Javascript 调用 ActionScript 方法
14Javascript 调用 ActionScript 方法<head>
15Javascript 调用 ActionScript 方法<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
16Javascript 调用 ActionScript 方法
17Javascript 调用 ActionScript 方法<!--  BEGIN Browser History required section -->
18Javascript 调用 ActionScript 方法<link rel="stylesheet" type="text/css" href="history/history.css" />
19Javascript 调用 ActionScript 方法<!--  END Browser History required section -->
20Javascript 调用 ActionScript 方法
21Javascript 调用 ActionScript 方法<title></title>
22Javascript 调用 ActionScript 方法<script src="AC_OETags.js" language="javascript"></script>
23Javascript 调用 ActionScript 方法
24Javascript 调用 ActionScript 方法<!--  BEGIN Browser History required section -->
25Javascript 调用 ActionScript 方法<script src="history/history.js" language="javascript"></script>
26Javascript 调用 ActionScript 方法<!--  END Browser History required section -->
27Javascript 调用 ActionScript 方法
28133
Javascript 调用 ActionScript 方法
总结,js调用as,大概分为3步:
  1. as使用ExternalInterface.addCallback注册回调函数
  2. 在js函数中根据flash在网页中的id获取实例
  3. 用上面获取到flash实例,调用as的函数
 
运行效果
由于需要单独编写一下页面才可以看到效果,不是简单的插入flash,所以,点击查看效果 

相关文章: