第一章 Flex是如何工作的(4)

繁简对译:[]  字体设置:[] 2009-12-26  作者:adobe  来源:adobe.com  阅读  次

第五节事件和行为的使用

HTML应用程序的原理是由客户端发出请求,并从服务器端得到反应。与之不相同的是,Flex应用程序是基于事件的 /event-based。举个例子,当用户单击一个按钮时,便会触发一个事件。应用程序本身,不是指服务器,包含了识别事件的逻辑并采取相应的行动。

当事件被触发时修改组件的属性

对某个组件以编程方式进行操作时,为了对某个事件作出反应,必须首先要引用它,这时你就需要赋予它一个 ID值,如下所示:

<mx:Panel id="myPanel" layout="absolute" width="80%" height="80%" x="122" y="24">

随后你就可以将行为 /behavior添加到应用程序上,当某个事件被触发时改变组件的属性值,就象这样:

<mx:Button label="Close" right="30" bottom="40" click="myPanel.visible=false"/>

当按钮被单击时,面板的可见属性值被设置为 false。

使用 ActionScript功能函数你也可以通过编写 ActionScript功能函数,并在事件中调用它来达到相同的目的,在这种情况下,按钮组件的单击事件如下所示:

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Style source="styles.css" />

<mx:Script>

<![CDATA[ public function close() : void { myPanel.visible = false; }

]]> </mx:Script>

<mx:Panel id="myPanel" layout="absolute" width="80%" height="80%" x="122" y="24"> <mx:TextArea text="Say hello to Flex!" top="10" bottom="70" left="10" right="30" /> <mx:Button label="Close" right="30" bottom="40" click="close();" />

</mx:Panel> </mx:Application>

ActionScript功能函数是在 MXML文件里的 <mx:Script>块中进行定义的,然后引用到按钮的单击事件上。

单独的 ActionScript代码

为了从 MXML文件中更好地分离出 ActionScript代码,你可以将它们放到单独的 ActionScript文件中而不是作为函数,然后再将它们导入到 MXML文件里,如下所示: <mx:Script source="myFunctions.as" />

运用行为和变换增强丰富的视觉互动性 Flex应用程序是事件驱动的,这就意味着你可以在程序运行时使用事件去添加丰富的视觉互动性。为了实现它,你使用了一个事件触发器,用其来描述一个行为。

在前面的例子中,面板组件的 visible属性值被设置为 false因而不可见。你还可以通过使用行为来制造出更强的视觉效果。

下面的例子创建了一个行为,该行为首先创建好一种效果,然后把它绑定到组件的 hideEffect属性上(触发器):

<mx:Fade id="myFade"/>

<mx:Panel id="myPanel" layout="absolute" width="80%" height="80%" hideEffect="{myFade}" >

当关闭按钮被单击时,面板组件淡出而不是消失。

触发器和效果还可以组合到更为复杂的行为中,其被称之为变换 /transitions。

打印 收藏 关闭