`
pyleaf
  • 浏览: 39407 次
  • 性别: 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技术的实用教程。本书旨在帮助读者...

    flex4 cookbook4

    在《Flex4 Cookbook》这本书中,作者Joshua Noble、Todd Anderson、Garth Braithwaite、Marco Casario 和 Rich Tretola 共同探讨了Adobe Flex 4框架及其相关的ActionScript编程语言的基本概念和技术细节。...

    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)的形式呈现,为读者提供了许多...

Global site tag (gtag.js) - Google Analytics