`
pyleaf
  • 浏览: 39140 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Cookbook4 笔记 第八章 List和项目渲染器

    博客分类:
  • Flex
 
阅读更多

1、创建自定义项目渲染器

 

<s:List id="list" dataProvider="{provider}" selectedIndex="0">
	<s:itemRenderer>
		<fx:Component>
			<s:ItemRenderer>
				<s:states>
					<s:State name="normal"/>
					<s:State name="hovered"/>
					<s:State name="selected"/>
				</s:states>
				<s:Label text="{data}"/>
			</s:ItemRenderer>
		</fx:Component>
	</s:itemRenderer>
</s:List>

 项目呈现器的基本状态为“normal”、“hovered”和“selected”。在 Flex 4.5 中,添加了“down”和“downAndSelected”。

 

 

2、在List中滚动到指定项目

 

spark.components.List.ensureIndexIsVisible(index:int):void

滚动数据项以使其可见的简便处理方法。如果指定索引的数据项未完全显示,List 将滚动,直到数据项显示出来。如果数据项已显示出来,则不会发生任何其他滚动。

 

 

4、更改List的布局

 

(1)使用自定义皮肤

 

<?xml version="1.0" encoding="utf-8"?>
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
		xmlns:s="library://ns.adobe.com/flex/spark" 
		xmlns:mx="library://ns.adobe.com/flex/mx">
	<!-- host component -->
	<fx:Metadata>
		[HostComponent("spark.components.List")]
	</fx:Metadata>
	
	<!-- states -->
	<s:states>
		<s:State name="disabled" />
		<s:State name="normal" />
		<s:State name="selected" />
	</s:states>
	
	<s:Scroller>
		<s:DataGroup id="dataGroup" height="{hostComponent.height}" width="{hostComponent.width}">
			<s:layout>
				<s:TileLayout clipAndEnableScrolling="true"/>
			</s:layout>
		</s:DataGroup>
	</s:Scroller>
</s:Skin>

 (2)上面是cookbook中得例子,也可以直接用layout

 

<s:List width="120" height="80" dataProvider="{provider}" selectedIndex="0"
		itemRenderer="spark.skins.spark.DefaultItemRenderer">
	<s:layout>
		<s:TileLayout clipAndEnableScrolling="true"/>
	</s:layout>
</s:List>

 

7、设置特定的可选项

 

SelectionRestrictedRenderer.mxml

 

 

<?xml version="1.0" encoding="utf-8"?>
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
				xmlns:s="library://ns.adobe.com/flex/spark"
				xmlns:mx="library://ns.adobe.com/flex/halo">
	<fx:Script>
		<![CDATA[
			private var __fun:Function;

			public function set selectableFunction(fun:Function):void {
				__fun = fun;
			}

			override public function set data(value:Object):void {
				if (value && __fun(value)) {
					mouseEnabled = true;
					enabled = true;
				} else {
					mouseEnabled = false;
					enabled = false;
				}
				super.data = value;
			}
		]]>
	</fx:Script>
	<s:states>
		<s:State name="normal"/>
		<s:State name="hovered"/>
		<s:State name="selected"/>
	</s:states>
	<s:Label text="{data}"/>
</s:ItemRenderer>
 

 

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
			   xmlns:s="library://ns.adobe.com/flex/spark"
			   xmlns:mx="library://ns.adobe.com/flex/halo"
			   creationComplete="init()">
	<fx:Script>
		<![CDATA[
			import mx.collections.ArrayCollection;

			import renderers.SelectionRestrictedRenderer;
			[Bindable]
			public var provider:ArrayCollection;

			public function init():void {
				provider = new ArrayCollection([12, 13, 4, 5, 16, 19, 400]);
			}

			public function customItemRendererFunction(item:*):IFactory {
				var factory:ClassFactory = new ClassFactory(SelectionRestrictedRenderer);
				factory.properties = {"selectableFunction": selectionAllowFunction};
				return factory;
			}

			public function selectionAllowFunction(value:*):Boolean {
				if (value < Number(textInput.text)) {
					return false;
				} else {
					return true;
				}
			}

			public function updateList():void {
				list.executeBindings();
			}
		]]>
	</fx:Script>
	<s:layout>
		<s:HorizontalLayout/>
	</s:layout>
	<s:TextInput id="textInput" change="updateList()"/>
	<s:List id="list" dataProvider="{provider}" itemRendererFunction="{customItemRendererFunction}"/>
</s:Application>
 

9、为List添加右键菜单

在ItemRenderer的set data()方法中

var personMenu:ContextMenu = new ContextMenu();
var lookupRecord:ContextMenuItem = new
ContextMenuItem("Look Up Record");
var lookupPicture:ContextMenuItem = new
ContextMenuItem("Look Up Picture");
personMenu.customItems.push(lookupRecord);
personMenu.customItems.push(lookupPicture);
this.contextMenu = personMenu;

 public function ContextMenuItem(caption:String, separatorBefore:Boolean = false, enabled:Boolean = true, visible:Boolean = true)

caption:String — 指定与菜单项关联的文本。有关 caption 值限制,请参阅 ContextMenuItem 类概述。

separatorBefore:Boolean (default = false) — 指定分隔条是否显示在上下文菜单中的菜单项上方。默认值为 false。

enabled:Boolean (default = true) — 指定菜单项在上下文菜单中是处于启用状态还是禁用状态。默认值为 true(启用)。此参数是可选的。

visible:Boolean (default = true) — 指定菜单项是否可见。默认值为 true(可见)。

分享到:
评论

相关推荐

    A skip list cookbook.

    尽管原始论文仅介绍了搜索、插入和删除操作,本文档进一步探讨了 Skip list 的灵活性,并展示了如何通过 Skip list 实现诸如搜索指针(search fingers)、合并、分割以及连接等操作,甚至如何用 Skip list 实施线性...

    Jakarta Commons CookBook学习笔记

    ### Jakarta Commons CookBook 学习笔记 #### 一、Commons Lang: EqualsBuilder and HashCodeBuilder **1.1 概述** `EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于...

    wf4cookbook中文

    WF4 Cookbook中文版是针对Microsoft Windows Workflow Foundation 4.0(WF4)的一份技术指南,旨在帮助开发者更好地理解和利用WF4进行工作流应用的开发。Windows Workflow Foundation是一个.NET Framework的一部分,...

    Apache Solr 4 Cookbook

    Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook Apache Solr 4 Cookbook

    iOS 4 Programming Cookbook

    ### iOS 4 Programming Cookbook #### 书本概览与核心知识点 《iOS 4 Programming Cookbook》是一本专门针对iOS 4开发的技术书籍,由Vandad Nahavandipoor撰写,于2011年1月由O'Reilly Media出版。本书主要面向iOS...

    Flex 4 Cookbook

    Flex 4 Cookbook

    PHP Cookbook读书笔记 &amp;ndash; 第15章创建Web服务.docx

    在PHP Cookbook的第15章中,作者详细介绍了如何利用`SOAPClient`和`SOAPServer`类来构建Web服务。 首先,让我们来看看创建SOAP客户端。`SOAPClient`是PHP提供的用于与SOAP服务器通信的类。在示例中,`SOAPClient`被...

    Flex 4 Cookbook 英文版( pdf 非影印版)

    《Flex 4 Cookbook》是一本由Joshua Noble、Todd Anderson、Garth Braithwaite、Marco Casario 和 Rich Tretola 联合编写的英文书籍,由著名的O'Reilly Media出版,专注于Flex 4技术的实用教程。本书旨在帮助读者...

    Unity 4.x Cookbook

    在图形和渲染方面,《Unity 4.x Cookbook》涵盖了光照、材质、着色器和相机设置等主题。理解这些元素对于创建引人入胜的视觉效果至关重要。书中的教程将引导读者制作各种效果,如动态光照、粒子系统和环境反射,这些...

    Redis 4.x Cookbook中文版

    通过阅读**Redis 4.x Cookbook中文版**,读者不仅可以掌握Redis的基础操作,还能了解到高级特性的应用和实践,进一步提升在实际项目中的开发能力。这本书无疑是学习和进阶Redis技术的宝贵资源。

    Flex4 Cookbook

    - **第1章**: Flex 和 ActionScript 基础 - **1.1 创建 Flex 项目**:在 Flash Builder 中创建 Flex 项目的基础步骤。 - **1.2 创建 Flex 库项目**:在 Flash Builder 中创建用于共享组件和代码库项目的步骤。 - ...

    Jakarta Commons cookbook.chm与中文版的笔记

    《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...

    Unreal Engine 4 Scripting with C++ Cookbook willam

    10. **渲染与特效**:通过C++深入理解UE4的渲染管线,包括材质、着色器、光照和粒子系统。学习如何自定义渲染效果和创建复杂视觉特效。 本书《Unreal Engine 4 Scripting with C++ Cookbook》将通过一系列实例和...

    Swift 4 Programming Cookbook(高清彩版)

    综上所述,《Swift 4 Programming Cookbook》是一本全面而深入的Swift编程指南,不仅覆盖了Swift 4的基础知识和高级特性,还提供了大量的实战案例,对于希望深入了解并熟练掌握Swift 4的开发者来说是一本不可或缺的...

    Unreal Engine 4 Scripting with C++ Cookbook pdf 0分

    标题和描述中提到的《Unreal Engine 4 Scripting with C++ Cookbook》是一本关于Unreal Engine 4(UE4)游戏引擎中使用C++编程语言进行脚本编程的实用指导书。这本书以食谱(Cookbook)的形式呈现,为读者提供了许多...

    Arduino CookBook 和 Arduino图

    《Arduino CookBook》是一本专为那些希望通过编程和硬件接口技术与物理世界互动的人们设计的指南。这本书包含了丰富的知识和技巧,适用于从初学者到经验丰富的电子爱好者的所有层次。Arduino是一个开源电子平台,以...

Global site tag (gtag.js) - Google Analytics