预览模式: 普通 | 列表

Flex中使用渲染器(ItemRenderer)

Flex中的渲染器(ItemRenderer)使用非常频繁,可以让用户自行定义数据的显示格式,做过.NET开发的朋友我想都知道数据控件中的 ItemTemplate,我个人认为Flex中的ItemRenderer和.NET中的ItemTemplate从功能上来说相差不大,在Flex要显示特定的格式完全可以通过ItemRenderer来自定义。

      在《使用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)">

查看更多...

分类:adobe soft | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 95

FLEX自定义项目渲染器:

获取xml数据放入列表容器,itemRenderer="outmxml.xuanran"是指定自定义组件的位置“包名.自定义组件名"
<mx:HTTPService id="httpservice" url="persondata.xml" result="getresult(event)" fault="gerresulterror(event)"/>
<mx:Script>
<![CDATA[
   import mx.collections.ArrayCollection;

查看更多...

分类:adobe soft | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 79

Flex中自定义事件的两种方法--ActionScript、MXML

事件是一个非常有用的功能,通常用于信息传递交互大大提高程序编写的灵活性。在高级语言中都会集成这方面特性;Flex也不例外几乎所有控件中都集成了大量的事件,如果ButtonClick事件等。但实际应用中控件自有的事件是不能满真实需要的,特别在自己编写自定义控件时,自定义控件内部信息的改变如何及时通知所在的容器变得很更要;这个时候自定义事件就起到它的作用。

       Flex中定义事件有两中情况,分别是ActionScriptMXML中定义。

       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>

 

其实自定义事件的现实也很简单,但起着非常重要的作用;正是因为有了事件的机制,使得大部分重复的功能抽取到自定义控件中,从而达到一个很高的代码重用性。

分类:adobe soft | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 92