熟悉Asp.Net的朋友都应该知道其中很有用的代码隐藏模型,代码隐藏模型是一个通过类的相互继承来实现应用逻辑和UI的分离的编码模型。由于Flex的先天优势,这个在Flex2中很容易实现。
Flex中实现代码隐藏模型原理是,将应用逻辑放在一个AS3类中,而MXML UI继承该AS3类就可以了。
例如,考虑以下没有做分离前的代码:
[xml]
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function myButtonClick( event:MouseEvent ):void
{
Alert.show( "Hello from myButtonClick!" );
}
]]>
</mx:Script>
<mx:Button
id="myButton"
label="Click Me!"
click="myButtonClick( event )" />
</mx:Application>
接着我们用代码隐藏模型来分离UI和应用逻辑,首先将应用逻辑分离到一个AS3类中:
路径:app/CodeBehandAction.as:
[java]
package app
{
import mx.core.Application;
import flash.events.MouseEvent;
import mx.controls.Alert;
public class CodeBehandAction extends Application
{
public function myButtonClick( event:MouseEvent ):void
{
Alert.show( "Hello from myButtonClick!" );
}
}
}
然后MXML UI 文件编码如下:
[xml]
<?xml version="1.0" encoding="utf-8"?>
<app:CodeBehandAction xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:app="app.*">
<mx:Button
id="myButton"
label="Click Me!"
click="myButtonClick( event )" />
</app:CodeBehandAction>
Mxml实际上是As3类的封装,在Mxml中,根标签用于表明其扩展继承那个类,以上示例<app:CodeBehandAction/>表明我们的CodeBehand类扩展CodeBehandAction类,也就实现了代码隐藏模型了。
这样编码的好处是:
- 在Class中编码,在MXML中编写UI。
- 易于理解。
- 组建可重复利用。
很简单吧?!
O comments at "代码隐藏模型Flex 2实现"
Comment Now!