1.12.使用代码隐藏模式分离MXML和ActionScript

1.12.1.问题
我想使用代码隐藏模式将ActionScript和MXML代码分离开。
1.12.2.解决办法
在ActionScript创建继承自Flex库的类,添加属性和方法提供相应的功能,然后创建MXML
文件并继承你创建的那个类。
1.12.3.讨论
如果你熟悉ASP.NET开发,一定听说过“代码隐藏”,同样地,如果你熟悉脚本语言(Ruby on Rails, JavaServer Pages (JSP) 开发, PHP,等等)中采用的应用程序视图和控制器相分离的观念。要控制这些代码便于阅读以及清晰度,最好的策略就是把实际布局元素从代码中分离出来。用此方法开发的程序项目所需的文件数会使得项目操作变得很困难,因为每个组件都要产生两个文件。此外,分离业务逻辑和视图逻辑经常也是很困难的,这样会导致组件的中的代码分离部份难以理解。但是还是有很多开发人员喜欢这种方式,因为有时候它能帮助你阐明应用程序的工作原理。

首先看一下“代码隐藏”的后面部分:一个组件继承这个类(mx.containers.Canvas),包含监听组件被添加到stage的方法以及处理任何事件的方法和专门处理鼠标单击事件的方法。
+展开
-ActionScript
package oreilly.cookbook {
import mx.containers.Canvas;
import flash.events.Event;
public class CodeBehindComponent extends Canvas {
public function CodeBehindComponent() {
super();
addEventListener(Event.ADDED_TO_STAGE, addedToStageListener);
}
protected function addedToStageListener(event:Event):void {
trace("Added to Stage from Code Behind ");
}
protected function clickHandler(event:Event):void {
trace("Click handled from component " +event.target);
}
}
}

在这个例子中,方法被标记为protected和private作用域相当,因为这是代码隐藏的一部分代码,MXML将继承CodeBehindComponent类及其方法:
+展开
-XML
<cookbook:CodeBehindComponent xmlns:mx="http://www.adobe.com/2006/mxmlwidth="200height="400xmlns:cookbook="oreilly.cookbook.*">
<mx:Button click="clickHandler(event)"/>
</cookbook:CodeBehindComponent>

加支付宝好友偷能量挖...


评论(0)网络
阅读(99)喜欢(0)flash/flex/fcs/AIR