Flex中使用渲染器(ItemRenderer)
作者:zhouwenyong 日期:2010-01-08
在《使用TileList+TitleWindowt组件开发聊天表情功能 》这文章里其实就已经用到了ItemRenderer,只是没有专们提出来介绍,这里使用的是内部ItemRenderer,除此之外我们还可以使用外部 ItemRenderer。故名思意内部ItemRenderer就是直接嵌套在Flex内部的,外部ItemRenderer则是将要显示的效果通过外部组件或是外部类来进行定义开发。
<mx:TileList x="0" y="0" width="100%" height="100%" id="faceList"
dataProvider="{faceArray}" itemClick="onItemClick(event)">
FLEX自定义项目渲染器:
作者:zhouwenyong 日期:2010-01-08
<mx:HTTPService id="httpservice" url="persondata.xml" result="getresult(event)" fault="gerresulterror(event)"/>
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
Flex中自定义事件的两种方法--ActionScript、MXML
作者:zhouwenyong 日期:2010-01-08
在Flex中定义事件有两中情况,分别是ActionScript和MXML中定义。
在ActionScript中定义:
[Event(name="myEnableEvent", type="flash.events.Event")]
public class MyComponent extends UIComponent
{
...
}
在MXML中定义:
<mx:Metadata>
[Event(name="DataChange", type="DataChangeEvent")]
</mx:Metadata>
DataChangeEvent事件参数的定义:
import flash.events.Event;
public class DataChangeEvent extends flash.events.Event
{
public function DataChangeEvent()
{
super("DataChange");
}
public var Data:Object;
}
在自定义控件中定义和触发事件:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form xmlns:mx="http://www.adobe.com/2006/mxml" width="212" height="56">
<mx:Metadata>
[Event(name="DataChange", type="DataChangeEvent")]
</mx:Metadata>
<mx:Button label="Button" click="Change()"/>
<mx:Script>
<![CDATA[
function Change():void
{
this.dispatchEvent(new DataChangeEvent());
}
]]>
</mx:Script>
</mx:Form>
容器接收相关自定义控件事件:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="*">
<ns1:EmployeeCombo x="146" y="132" DataChange="onChange(event)" >
</ns1:EmployeeCombo>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
function onChange(e:DataChangeEvent)
{
}
]]>
</mx:Script>
</mx:Application>
其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。




