`
demojava
  • 浏览: 553490 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex Repeater

阅读更多
flex Repeater

flex 可以使用重复 Repeater 控件在运行时动态重复MXML的内容
flex 中除了<mx:Application>其他都可以被重复而 Repeater 控件
可以多次使用,也可以嵌套使用 有点for循环的意思

常用的属性
  dataProvider : Object 此 Repeater 创建其子项的重复实例时使用的数据提供程序。
  startingIndex : int  dataProvider 中的索引,此 Repeater 从此索引位置开始创建子项。
  count : int 此 Repeater 应执行的次数。
  currentIndex : int  Repeater 执行时,当前正在处理的 dataProvider 中项目的索引。
  currentItem : Object  此 Repeater 执行时,当前正在处理的 dataProvider 中的项目。
  recycleChildren : Boolean 布尔值标志,指示此 Repeater 是重新使用以前创建的子项还是创建新子项。
事件
    repeat 每次处理项目或更新 currentIndex 和 currentItem 属性时调度。 
    repeatEnd 创建了 repeater 的所有子组件后调度。 
    repeatStart 当 Flex 开始处理 dataProvider 属性并开始创建指定的子组件时调度。
例如:

<?xml version="1.0"?>
<!-- Simple example to demonstrate the Repeater class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

    <mx:Script>
        <![CDATA[
        
            import mx.controls.Alert;
  
            [Bindable]
            private var dp:Array = [1, 2, 3, 4, 5, 6, 7, 8, 9];    
            
        ]]>
    </mx:Script>

    <mx:Panel title="Repeater Example" width="75%" height="75%" 
        paddingTop="10" paddingLeft="10" paddingRight="10" paddingBottom="10">
  
        <mx:Text width="100%" color="blue" 
            text="Use the Repeater class to create 9 Button controls in a 3 by 3 Tile container."/>

        <mx:Tile direction="horizontal" borderStyle="inset" 
            horizontalGap="10" verticalGap="15"
            paddingLeft="10" paddingTop="10" paddingBottom="10" paddingRight="10">
        
            <mx:Repeater id="rp" dataProvider="{dp}">
                <mx:Button height="49" width="50" 
                    label="{String(rp.currentItem)}" 
                    click="Alert.show(String(event.currentTarget.getRepeaterItem()) + ' pressed')"/>
            </mx:Repeater>    
        </mx:Tile>
  
    </mx:Panel>  
</mx:Application>

   <mx:Repeater id="rp" dataProvider="{dp}" count="3">
	<mx:Label id="lbl1" text="value:{rp.currentItem}Loop #{rp.currentIndex+!} of {rp.count} />
   </mx:Repeater >
 

<mx:Script>
	<![CDATA[
		import mx.collections.*;
		import mx.controls.Alert;
		[Bindable]
		public var images:ArrayCollection = 
			new ArrayCollection([{source:"image/heavyrain.png"},{source:"image/partlycloudy.png"},
	         {source:"image/sunny.png"},{source:"image/thunder.png"},{source:"image/cloudy.png"},
             {source:"image/drizzle.png"},{source:"image/snow.png"},{source:"image/clearnight.png"}]);
        
        public function handleRepeatStart():void
        {
        	mx.controls.Alert.show("Repeater starting!");
        }

        public function handleRepeat():void
        {
        	trace("Current on index:" + myRepeater.currentIndex);
        	trace("Image is:" + myRepeater.currentItem.source);
        }


        public function handleRepeatEnd():void
        {
        	mx.controls.Alert.show("Repeater finished!");
        }

	]]>
</mx:Script>
<mx:Tile direction="horizontal" >
  <mx:Repeater id="myRepeater" dataProvider="{images}" 
               repeatStart="handleRepeatStart()"
               repeat="handleRepeat()"
               repeatEnd="handleRepeatEnd()">
    <mx:Image source="{myRepeater.currentItem.source}" />	
  </mx:Repeater>
</mx:Tile>
当然可以使用
 
 <mx:HTTPService id="service" url="test.xml" resultFormate="e4x" />
   <mx:XMLListCollection id="myxc" source="{service.lastResult.product}" />
   xml结构如下:
   <products>
	   <product>
		<name>demo</name>
	   </product>
   </products>
   -- product 为xml中的节点

   <mx:Repeater id="repeater1" dataProvider="{myxc}" >
	<mx:Label id="lbl1" label="{repeater1.currentItem.name}" />
   </mx:Repeater>
   
   as中使用
//例子中因为 Label 的id都是一样的,引用每个标签的实体为 lbl1[0],lbl1[1]
   public fucntion demo():void
   {
	for(var i:int=0;i<lbl1.length;i++)
	{
		Alert.show("demo"+lbl1[i].text);
	}

   }


重复事件处理
   <mx:Repeater id="repeater1" dataProvider="{myxc}" >
<mx:Label id="lbl1" label="{repeater1.currentItem.name}" click="event.currentTarget.getRepeaterItem()"/>
   </mx:Repeater>

  使用 Repeater 控件需要注意的地方
  1.不能使用重复循环控件来循环一个二维数组对象
  2.在运行是改变重复组件的数据源数组,不会对重复控件产生影响,可以使用(colleciton)来定义数据源
  3.如果重复使用控件建议使用{}标识
  4.如果使用相邻或嵌套的重复控件:需要使用一个 UIComponent 例如
 
<mx:Spacer>
	   <mx:Repeater id="repeater1" dataProvider="{myxc}" >
   </mx:Repeater>
	   <mx:Repeater id="repeater2" dataProvider="{myxc}" >
   </mx:Repeater>
 </mx:Spacer>
分享到:
评论

相关推荐

    flex Repeater标签使用教程

    ### Flex Repeater标签使用教程 #### 一、引言 在Flex开发中,`Repeater`组件是一个非常实用的功能,它允许开发者根据动态或静态的数据数组,在运行时重复显示一个或多个用户界面组件。这对于创建动态且响应式界面...

    repeater动态首尾相接显示图片

    在本文中,我们将深入探讨如何使用ASP.NET中的Repeater控件来实现动态首尾相接显示图片的功能。Repeater是一个非常灵活的数据绑定控件,它允许我们根据数据源中的每一项自定义HTML输出。这种技术常用于创建列表、...

    repeater固定列

    外层`Repeater`循环次数为期望的列数,内层`Repeater`则根据剩余数据进行填充。 四、代码实现 以CSS Grid为例,`Default.aspx`页面可能包含如下HTML和服务器端控件: ```html &lt;asp:Repeater ID="rptColumns" runat...

    flex中批量生成checkbox

    flex中checkbox的数量可以根据分割字符串来控制,最重要的就是这个&lt;mx:Repeater&gt;标签了

    flex快速入门“flex3_quickstart”

    - **使用Repeater组件**:动态重复渲染列表或网格中的数据项。 - **设置组件的皮肤**:自定义组件的视觉表现,实现高度定制的设计。 - **使用数据提供程序**:管理和绑定数据到UI组件,实现数据驱动的应用程序。 - *...

    flex_教程.doc

    ### Flex教程:构建高效用户界面 #### 一、Flex简介 Flex是一种强大的用户界面框架,由Adobe Systems开发,主要用于构建动态且美观的Web应用程序。它提供了丰富的用户界面组件库,结合了MXML(一种基于XML的标记...

    flex quick starts

    在Adobe Flex开发中,`Repeater`组件是一种非常实用且灵活的工具,用于在界面上重复渲染一系列相似的UI元素。它适用于需要根据动态数据集(如来自WebService的Array对象)或者静态数组来重复显示UI组件的情况。 ###...

    Flex教程Flex教程

    ### Flex教程:深入理解Flex构建动态用户界面 #### 概述 Flex是一种强大的技术栈,专为构建丰富互联网应用程序(RIA)而设计。它结合了MXML(一种基于XML的标记语言)、ActionScript(一种ECMAScript兼容的、强类型...

    ItemRenderer and Repeater

    在ActionScript和Flex开发中,`ItemRenderer`和`Repeater`是两个非常重要的概念,它们主要用于数据可视化和用户界面的动态渲染。这篇博客“ItemRenderer and Repeater”可能详细探讨了这两个组件在构建富互联网应用...

    Flex 应用程序性能: 改善客户端应用程序和服务器性能的技巧与技术

    ### Flex 应用程序性能:改善客户端应用程序和服务器性能的技巧与技术 #### 概述 随着互联网技术的发展,富互联网应用(RIA)的需求日益增长。Macromedia Flex 是一个强大的平台,它允许开发者创建高性能的 RIA。...

    Flex 3 组件实例与应用(2009版)

    - **Repeater** - 可重复的容器组件,用于循环显示列表数据。 ##### 5. **PrintControls** - **FlexPrintJob/PrintDataGrid** - 打印相关的组件。 - **PrintDataGridExample** - 打印数据网格的例子。 - **...

    Flex UI组件使用全集

    - **Repeater**: 可以重复显示数据集合中每一项的容器组件。 #### Printcontrols(打印组件) - **FlexPrintJob、PrintDataGrid**: 打印相关的组件,支持打印DataGrid等内容。 #### Validatorsandformatters...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    《Flex 3 组件实例与应用(2009版)》是一本深入解析Adobe Flex 3框架下组件使用与实践的专业书籍。本书由Dason精心整理于2009年2月,全面覆盖了Flex 3中的各种控件、容器、数据可视化组件以及效果、视图状态和过渡...

    flex复选框和下拉列表的几种用法整理

    Repeater组件被用来动态生成复选框,每个复选框都绑定到了数据提供者提供的数据项上。为实现全选、全不选和反选的功能,页面上设置了三个按钮,每个按钮通过click事件触发对应的功能函数。 ActionScript 3.0 代码...

    Developing Flex Applications 910p dda_doc88_cracker.zip

    1. a book Developing Flex Applications 2. a web page viewer for doc88 ebt 3. a DDA downloader for doc88.com CONTENTS PART I: Presenting Flex CHAPTER 1: Introducing Flex. . . . . . . . . . . . . . ...

    实现网页上中(左右)下布局

    例如,使用`Repeater`控件动态生成导航栏或菜单项,或者使用`UpdatePanel`实现无刷新更新内容区。 总之,实现"网页上中下布局"涉及HTML结构、CSS样式以及可能的JavaScript交互。通过合理的`div`布局和CSS Flexbox,...

    Flex中让鼠标移至AdvancedDataGrid的行上不自动修改显示效果

    在Flex开发中,AdvancedDataGrid控件是一种强大的数据网格组件,用于展示大量结构化数据。相较于mx:Repeater,AdvancedDataGrid在处理大数据集时提供了更好的性能和用户体验,包括分页、排序、过滤等功能。然而,它...

    数据驱动组件.数据驱动组件.

    `Repeater`虽然不是正式的组件,但同样利用了数据驱动的概念来创建重复的组件结构。 `dataProvider`的类型转换规则是根据数据源的不同类型进行的,确保它可以适应各种数据结构。如果数据源是`ICollectionView`,则...

    C# 命名规范合集(WinForm、ADO、Web)

    * Data repeater:drpdrpLocation * Data-bound combo box:dbcbodbcboLanguage * Data-bound grid:dbgrddbgrdQueryResult * Data-bound list box:dblstdblstJobType * Datetime picker:dtpdtpPublished * ...

    RadioButtonList 横向列表 免费下载

    `RadioButtonList`是ASP.NET Web Forms框架中的一个服务器控件,它结合了`RadioButton`和`Repeater`的功能。与`ListBox`或`DropDownList`不同的是,`RadioButtonList`提供了一个更直观的方式来显示多个选项,并且...

Global site tag (gtag.js) - Google Analytics