Flex学习笔记

Flex是由界面语言MXML、脚本语言ActionScript组成的,主要针对开发人员,也就是代码写的较多的一类人。MXML用来划出界面,功用类似HTML。AS和JS同出规范ECMAScript,不过AS更加地面向对象,浏览器部署依赖Flash插件,桌面部署依赖AIR。JS是浏览器原生支持的,因为考虑安全性,JS无法访问客户端本地数据,这时候Flash只是作为一种替代。至于是否大量应用,还要看开发需求及开发者个人喜好。本人初学,如果有错误之错,敬请指正。

开发Flex应用一般使用Adobe的Flex Builder软件,或者基于Eclipse的Flex Builder插件。官方提供下载

事件绑定

AS和JS事件绑定类似,不过AS不用考虑浏览器兼容了,直接对象调用addEventListener方法即可。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" creationComplete="initApp(event);">
    <mx:Script>
        <![CDATA[
            import mx.controls.Alert;
            import mx.events.FlexEvent;

            private function initApp(evt:FlexEvent):void {
                this.addEventListener(MouseEvent.CLICK, getButtonInfo);
            }
            private function getButtonInfo(event:MouseEvent):void {
                Alert.show(this['myButton'].label);
            }		
        ]]>
    </mx:Script>
    <mx:Button id="myButton" label="Click Me"></mx:Button>	
</mx:Application

在Flex里实现JS的alert对话框,依赖mx.controls.Alert类。

创建了两个私有函数,initApp在Flex应用上绑定click事件,当鼠标点击Flex应用的时候,调用创建的第二个函数。

initApp是在Flex应用初始化完成之后调用的。creationComplete="initApp(event);"

通过id访问某个组件,使用this[id],this指代的是当前Flex应用。

AS调用JS方法

JS代码
function JSFunction() {
    alert('JSFunction');
}

AS代码
public function callJSFunc():void {
    ExternalInterface.call('JSFunction');
}

AS中使用ExternalInterface.call调用JS中的对象,该方法接受JS函数名字符串,可同时传递参数。

Flex事件绑定,手动触发事件

Obj.addEventListener(Event.CHANGE, onChange);
Obj.dispatchEvent(new MouseEvent(Event.CHANGE));  // 手动触发绑定的事件

手动触发一般会在应用初始化之后调用。

现在还没有评论

留下您的大名