1. 在Flex中,ActionScript调用Javascript是比较简单的,说白了就是,在html里,怎么调用Javascript,在ActionScript就怎么调用就可以了
2. 如果用js调用as,就稍微麻烦一点,其实也比较简单
MXML代码:
1<?xml version="1.0" encoding="utf-8"?>
2<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="left" backgroundColor="white"
3 initialize="init()">
4
5 <mx:Label text="城市名称:"/>
6
7 <mx:List id="cityList" width="200" height="300" dataProvider="{cities}"/>
8
9 <mx:ArrayCollection id="cities">
10 <mx:String>北京</mx:String>
11 <mx:String>上海</mx:String>
12 </mx:ArrayCollection>
13
14 <mx:Script>
15 <![CDATA[
16 private function init(): void
17 {
18 //注册回调函数供JavaScript调用
19 ExternalInterface.addCallback("callActionScript", asFunctionByJs);
20 }
21
22 private function asFunctionByJs(city: String): void
23 {
24 cities.addItem(city);
25 }
26 ]]>
27 </mx:Script>
28</mx:Application>
HTML代码(这些代码都是flex builder自动生成的,用于将flash嵌入到网页里,不用仔细看这些代码,注意黄色背景的部分,这是关键部分,是我加入到)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-
as使用ExternalInterface.addCallback注册回调函数
-
在js函数中根据flash在网页中的id获取实例
-
用上面获取到flash实例,调用as的函数