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(可见)。
分享到:
相关推荐
尽管原始论文仅介绍了搜索、插入和删除操作,本文档进一步探讨了 Skip list 的灵活性,并展示了如何通过 Skip list 实现诸如搜索指针(search fingers)、合并、分割以及连接等操作,甚至如何用 Skip list 实施线性...
### Jakarta Commons CookBook 学习笔记 #### 一、Commons Lang: EqualsBuilder and HashCodeBuilder **1.1 概述** `EqualsBuilder` 和 `HashCodeBuilder` 是 Apache Commons Lang 包中提供的两个工具类,用于...
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
### iOS 4 Programming Cookbook #### 书本概览与核心知识点 《iOS 4 Programming Cookbook》是一本专门针对iOS 4开发的技术书籍,由Vandad Nahavandipoor撰写,于2011年1月由O'Reilly Media出版。本书主要面向iOS...
Flex 4 Cookbook
在PHP Cookbook的第15章中,作者详细介绍了如何利用`SOAPClient`和`SOAPServer`类来构建Web服务。 首先,让我们来看看创建SOAP客户端。`SOAPClient`是PHP提供的用于与SOAP服务器通信的类。在示例中,`SOAPClient`被...
《Flex 4 Cookbook》是一本由Joshua Noble、Todd Anderson、Garth Braithwaite、Marco Casario 和 Rich Tretola 联合编写的英文书籍,由著名的O'Reilly Media出版,专注于Flex 4技术的实用教程。本书旨在帮助读者...
在《Flex4 Cookbook》这本书中,作者Joshua Noble、Todd Anderson、Garth Braithwaite、Marco Casario 和 Rich Tretola 共同探讨了Adobe Flex 4框架及其相关的ActionScript编程语言的基本概念和技术细节。...
在图形和渲染方面,《Unity 4.x Cookbook》涵盖了光照、材质、着色器和相机设置等主题。理解这些元素对于创建引人入胜的视觉效果至关重要。书中的教程将引导读者制作各种效果,如动态光照、粒子系统和环境反射,这些...
通过阅读**Redis 4.x Cookbook中文版**,读者不仅可以掌握Redis的基础操作,还能了解到高级特性的应用和实践,进一步提升在实际项目中的开发能力。这本书无疑是学习和进阶Redis技术的宝贵资源。
- **第1章**: Flex 和 ActionScript 基础 - **1.1 创建 Flex 项目**:在 Flash Builder 中创建 Flex 项目的基础步骤。 - **1.2 创建 Flex 库项目**:在 Flash Builder 中创建用于共享组件和代码库项目的步骤。 - ...
《Jakarta Commons Cookbook》是Java开发者的一本重要参考资料,它主要涵盖了Apache Jakarta Commons项目中的各种组件和工具的使用方法。Apache Commons是Java开发中的一个关键部分,提供了许多实用且功能强大的类库...
10. **渲染与特效**:通过C++深入理解UE4的渲染管线,包括材质、着色器、光照和粒子系统。学习如何自定义渲染效果和创建复杂视觉特效。 本书《Unreal Engine 4 Scripting with C++ Cookbook》将通过一系列实例和...
综上所述,《Swift 4 Programming Cookbook》是一本全面而深入的Swift编程指南,不仅覆盖了Swift 4的基础知识和高级特性,还提供了大量的实战案例,对于希望深入了解并熟练掌握Swift 4的开发者来说是一本不可或缺的...
标题和描述中提到的《Unreal Engine 4 Scripting with C++ Cookbook》是一本关于Unreal Engine 4(UE4)游戏引擎中使用C++编程语言进行脚本编程的实用指导书。这本书以食谱(Cookbook)的形式呈现,为读者提供了许多...