flex之下拉框值更改事件调用JavaScript函数

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
initialize="initApp()"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>

<fx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.Alert;

import spark.events.IndexChangeEvent;

[Bindable]
private var datas:ArrayCollection = new ArrayCollection([{label:"选项1"},{label:"选项2"},{label:"选项3"},{label:"选项4"}]);

//第一步:在mxml应用程序启动后执行:把js可以调用的ActionScript 函数注册
public function initApp():void
{
//把flexHelloWorld 函数注册成名为flexHelloWorld,可以供js调用
ExternalInterface.addCallback("flexHelloWorld", flexHelloWorld);
}

//供js调用的ActionScript函数,这里的param1,param2是从js传递回来的参数
public function flexHelloWorld(param1:String, param2:String):void
{
Alert.show("param1: " + param1 + "; param2:" + param2);
}

protected function userName_changeHandler(event:TextOperationEvent):void
{
//flex调用JavaScript函数的方式:如下:第一个参数是JavaScript中的函数名称,第二个参数
//是JavaScript函数中接受的参数
ExternalInterface.call("javascriptFunction",userName.text);
}

protected function newItem_clickHandler(event:MouseEvent):void
{
var s:String = itemValue.text;
datas.addItem(s);
items.selectedIndex = datas.length;
itemValue.text="";
}

protected function delItem_clickHandler(event:MouseEvent):void
{
datas.removeItemAt(items.selectedIndex);
items.selectedIndex=0;
}

//下拉框值更改事件
protected function items_changeHandler(event:IndexChangeEvent):void
{
//调用JavaScript中的函数
ExternalInterface.call("javascriptFunction",userName.text);
Alert.show(event.currentTarget.toString());
}

]]>
</fx:Script>

<fx:Script>
<![CDATA[
import spark.events.TextOperationEvent;
]]>
</fx:Script>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>

<s:TextInput id="userName" change="userName_changeHandler(event)" />
<s:Panel width="250" height="200" title="下拉框案例" x="0" y="60">
<s:TextInput id="itemValue" x="10" y="75" width="150"/>
<s:Button id="newItem" x="168" y="75" label="新建项" click="newItem_clickHandler(event)"/>
<s:ComboBox id="items" x="10" y="34" width="228" dataProvider="{datas}" selectedIndex="0" change="items_changeHandler(event)"/>
<s:Button id="delItem" x="168" y="104" label="删除选中" click="delItem_clickHandler(event)"/>
</s:Panel>
</s:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值