您的位置:首页 > 其它

创业公司CEO每天应该做的13件事

2011-08-26 14:39 288 查看
知识点:
1、凡是基于列表的控件都有一个itemRenderer属性,它用来设置项目渲染器的属性,我们可以选择默认的渲染器也可以选择自定义。如果选择自定义,则在基于列表的控件中将自定义渲染器的类赋给itemRenderer属性,如<mx:Tree id="myTree" width="100%" height="100%" labelField="@label"
showRoot="false" dataProvider="{treeData}"
itemRenderer="renderers.ColoredFolderTreeItemRenderer"
folderOpenIcon="@Embed('/assets/open.png')"
folderClosedIcon="@Embed('/assets/closed.png')" />

自定义渲染器示例:

主程序:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" viewSourceURL="srcview/index.html">

<mx:XMLList id="treeData">
<node>
<node label="Level 1 - 1">
<node label="Level 2">
<node label="Level 3">
<node label="Level 4">
<node label="Level 5"/>
</node>
</node>
</node>
</node>
<node label="Level 1 - 2">
<node label="Level 2">
<node label="Level 3">
<node label="Level 4">
<node label="Level 5"/>
</node>
</node>
</node>
</node>
<node label="Level 1 - 3">
<node label="Level 2">
<node label="Level 3">
<node label="Level 4">
<node label="Level 5"/>
</node>
</node>
</node>
</node>
</node>
</mx:XMLList>

<mx:Tree id="myTree" width="100%" height="100%" labelField="@label"
showRoot="false" dataProvider="{treeData}"
itemRenderer="renderers.ColoredFolderTreeItemRenderer"
folderOpenIcon="@Embed('/assets/open.png')"
folderClosedIcon="@Embed('/assets/closed.png')" />

</mx:Application>

ColoredFolderTreeItemRenderer类:
package renderers
{
import flash.filters.ColorMatrixFilter;

import mx.controls.treeClasses.TreeItemRenderer;
import mx.controls.treeClasses.TreeListData;

public class ColoredFolderTreeItemRenderer extends TreeItemRenderer
{
override protected function commitProperties():void
{
super.commitProperties();

if ( icon )
{
var matrix:Array = new Array();

switch (TreeListData( listData ).depth )
{
case 1:
matrix = matrix.concat([1, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, .25, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, .25, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
case 2:
matrix = matrix.concat([.25, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, 1, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, .25, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
case 3:
matrix = matrix.concat([.25, 0, 0, 0, 0]); // red
matrix = matrix.concat([0, .25, 0, 0, 0]); // green
matrix = matrix.concat([0, 0, 1, 0, 0]); // blue
matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha
icon.filters = [ new ColorMatrixFilter( matrix) ]
break;
default:
icon.filters = [];
break;
}
}
}
}
}

演示效果如图所示:

知识点2:要通过使用 ActionScript 添加滤镜,请执行以下步骤(假定目标显示对象名为 myDisplayObject):

1)、使用所选滤镜类的构造函数方法创建一个新的滤镜对象。
2)、将 myDisplayObject.filters 数组的值分配给临时数组,例如一个名为 myFilters 的数组。
3)、将新的滤镜对象添加到临时数组 myFilters。
4)、将临时数组的值分配给 myDisplayObject.filters 数组。

commitProperties()是用来设置组样宽高样式等行为的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: