欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Flex4 使用itemRenderer 為Tree加線具體實現

Flex4 使用itemRenderer 為Tree加線具體實現

熱門標簽:什么行業需要電話機器人 車載電話機器人 南昌crm外呼系統如何 無錫電銷外呼系統代理 天津企業外呼系統代理商 地圖標注多家店 中山外呼系統中間件 廣州ai外呼系統業務 外呼系統號碼顯示
復制代碼 代碼如下:

package Modules
{
import flash.display.BitmapData;
import flash.display.Graphics;

import mx.collections.ICollectionView;
import mx.collections.IList;
import mx.controls.Tree;
import mx.controls.treeClasses.ITreeDataDescriptor;
import mx.controls.treeClasses.TreeItemRenderer;


/**
* Alpha value for the Tree lines.
* @default 1
*/
[Style(name="lineAlpha", type="Number", format="Length", inherit="no")]

/**
* Color of the Tree lines.
* @default 0x808080
*/
[Style(name="lineColor", type="uint", format="Color", inherit="no")]

/**
* Thickness value for the Tree lines.
* @default 1
*/
[Style(name="lineThickness", type="Number", format="Length", inherit="no")]

/**
* The Tree line style - none, dotted (default), or solid.
* @default "dotted"
*/
[Style(name="lineStyle", type="String", enumeration="solid", inherit="no")]

/**
* Extends TreeItemRenderer to draw the dotted lines of the tree.
* It supports 3 line styles - dotted (default), solid, or none.
* And the tree line color, alpha, and thickness values are configurable styles too.
*
* pre>
* ui:TreeItemLinesRenderer
* b>Styles/b>
* lineAlpha="1"
* lineColor="#808080"
* lineThickness="1"
* lineStyle="dotted"
* >
* ...
* i>child tags/i>
* ...
* /ui:TreeItemLinesRenderer>
* /pre>
*
* @author Chris Callendar
* @date April 20th, 2009
*/
public class TreeItemLinesRenderer extends TreeItemRenderer
{

public static const DOTTED:String = "dotted"; // default
public static const SOLID:String = "solid";
public static const NONE:String = "none";

public function TreeItemLinesRenderer() {
super();
}

override public function set data(value:Object):void {
super.data = value;
}

override protected function updateDisplayList(w:Number, h:Number):void {
super.updateDisplayList(w, h);

if ((w > 0) (h > 0)) {
// go up the hierarchy, drawing the vertical dotted lines for each node
var tree:Tree = (owner as Tree);
var desc:ITreeDataDescriptor = tree.dataDescriptor;
var currentNode:Object = data;
var parentNode:Object = tree.getParentItem(currentNode);
// the level is zero at this node, then increases as we go up the tree
var levelsUp:int = 0;

var lineStyle:String = getStyle("solid");
var lineColor:uint = getColorStyle("lineColor", 0x808080);
var lineAlpha:Number = getNumberStyle("lineAlpha", 1);
var lineThickness:Number = getNumberStyle("lineThickness", 1);
var indentation:Number = tree.getStyle("indentation");

// move the icon and label over to make room for the lines (less for root nodes)
var shift:int = (parentNode == null ? 2 : 6) + lineThickness;
if (icon) {
icon.move(icon.x + shift, icon.y);
}
if (label) {
label.move(label.x + shift, label.y);
}

var g:Graphics = graphics;
g.clear();

if ((lineStyle != NONE) (lineAlpha > 0) (lineThickness > 0)) {
while (parentNode != null) {
var children:ICollectionView = desc.getChildren(parentNode);
if (children is IList) {
var itemIndex:int = (children as IList).getItemIndex(currentNode);
// if this node is the last child of the parent
var isLast:Boolean = (itemIndex == (children.length - 1));
drawLines(g, w, h, lineStyle, lineColor, lineAlpha, lineThickness, isLast, levelsUp, indentation);

// go up to the parent, increasing the level
levelsUp++;
currentNode = parentNode;
parentNode = tree.getParentItem(parentNode);
} else {
break;
}
}
}
}
}

protected function drawLines(g:Graphics, w:Number, h:Number, lineStyle:String, lineColor:uint,
lineAlpha:Number, lineThickness:Number, isLastItem:Boolean, levelsUp:int, indentation:Number):void {
var midY:Number = Math.round(h / 2);
var lineX:Number = 0;
if (disclosureIcon) {
lineX = disclosureIcon.x + (disclosureIcon.width / 2);
} else if (icon) {
lineX = icon.x - 8;
} else if (label) {
lineX = label.x - 8;
}
lineX = Math.floor(lineX) - int(lineThickness / 2);
// adjust the x position based on the indentation
if (levelsUp > 0) {
if (!isNaN(indentation) (indentation > 0)) {
lineX = lineX - (levelsUp * indentation);
} else {
// Invalid indentation style value
return;
}
}
var lineY:Number = h;
// stop the dotted line halfway on the last item
if (isLastItem) {
lineY = midY;
// no lines need to be drawn for parents of the last item
if (levelsUp > 0) {
return;
}
}

g.lineStyle(0, 0, 0);
if (lineStyle == SOLID) {
g.beginFill(lineColor, lineAlpha);
} else {
var verticalDottedLine:BitmapData = createDottedLine(lineColor, lineAlpha, lineThickness, true);
g.beginBitmapFill(verticalDottedLine);
}

// draw the vertical line
g.drawRect(lineX, 0, lineThickness, lineY);
// end the fill and start it again otherwise the lines overlap and it create white squares
g.endFill();

// draw the horizontal line - only needed on this node (not on any parents)
if (levelsUp == 0) {
var startX:int = lineX + 1 + int(lineThickness / 2);
var endX:int = startX + 11; // 5 dots
if (isLastItem) {
startX = lineX;
}
var startY:Number = midY - int(lineThickness / 2);
if (lineStyle == SOLID) {
g.beginFill(lineColor, lineAlpha);
} else {
var horizontalDottedLine:BitmapData = createDottedLine(lineColor, lineAlpha, lineThickness, false);
g.beginBitmapFill(horizontalDottedLine);
}
g.drawRect(startX, startY, endX - startX, lineThickness);
g.endFill();
}

}

/**
* Creates a BitmapData that is used to renderer a dotted line.
* If the vertical parameter is true, then it creates a rectangle bitmap that is
* twice as long as it is wide (lineThickness). Otherwise it creates a rectangle
* that is twice as wide as it is long.
* The first half of the rectangle is filled with the line color (and alpha value),
* then second half is transparent.
*/
private function createDottedLine(lineColor:uint, lineAlpha:Number, lineThickness:Number,
vertical:Boolean = true):BitmapData {
var w:Number = (vertical ? lineThickness : 2 * lineThickness);
var h:Number = (vertical ? 2 * lineThickness : lineThickness);
var color32:uint = combineColorAndAlpha(lineColor, lineAlpha);
var dottedLine:BitmapData = new BitmapData(w, h, true, 0x00ffffff);
// create a dotted bitmap
for (var i:int = 0; i lineThickness; i++) {
for (var j:int = 0; j lineThickness; j++) {
dottedLine.setPixel32(i, j, color32);
}
}
return dottedLine;
}

/**
* Combines the color value and the alpha value into a 32 bit uint like #AARRGGBB.
*/
private function combineColorAndAlpha(color:uint, alpha:Number):uint {
// make sure the alpha is a valid number [0-1]
if (isNaN(alpha)) {
alpha = 1;
} else {
alpha = Math.max(0, Math.min(1, alpha));
}

// convert the [0-1] alpha value into [0-255]
var alphaColor:Number = alpha * 255;
// bitshift it to come before the color
alphaColor = alphaColor 24;
// combine the two values: #AARRGGBB
var combined:uint = alphaColor | color;
return combined;
}

private function getColorStyle(propName:String, defaultValue:uint):uint {
var color:uint = defaultValue;
if (propName != null) {
var n:Number = getStyle(propName);
if (!isNaN(n)) {
color = uint(n);
}
}
return color;
}


private function getNumberStyle(propName:String, defaultValue:Number):Number {
var number:Number = defaultValue;
if (propName != null) {
var n:Number = getStyle(propName);
if (!isNaN(n)) {
number = n;
}
}
return number;
}

}
}

標簽:呂梁 泰州 欽州 佛山 海西 仙桃 攀枝花 滄州

巨人網絡通訊聲明:本文標題《Flex4 使用itemRenderer 為Tree加線具體實現》,本文關鍵詞  Flex4,使用,itemRenderer,為,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Flex4 使用itemRenderer 為Tree加線具體實現》相關的同類信息!
  • 本頁收集關于Flex4 使用itemRenderer 為Tree加線具體實現的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久精品国产一区二区三| 99精品热视频| 北条麻妃一区二区三区| 无码一区二区精品| 国精品无码一区二区三区| 日韩一区二区电影网| 亚洲色图19p| 国产在线不卡一区| 日韩免费高清一区二区| 欧美日韩不卡视频| 日本一区二区成人在线| 视频一区二区三区入口| 99久久婷婷国产综合精品| 久久精品国产亚洲AV熟女| 欧美亚洲综合另类| 国产精品福利影院| 麻豆成人久久精品二区三区小说| 无套白嫩进入乌克兰美女| 老司机成人免费视频| 精品福利视频一区二区三区| 中文字幕av不卡| 欧美一区二区性放荡片| 欧美视频在线不卡| 欧美亚洲一区二区在线观看| 亚洲视频免费在线| 91免费版pro下载短视频| 麻豆视频在线免费看| 国产精品免费看片| 国产精品自在欧美一区| 国产ts在线播放| 精品奇米国产一区二区三区| 婷婷开心久久网| 美女露出粉嫩尿囗让男人桶| 在线观看亚洲精品视频| 亚洲大片免费看| wwwww在线观看| 欧美性生活大片视频| 午夜精品视频在线观看| 中文字幕被公侵犯的漂亮人妻| 久久精品夜色噜噜亚洲a∨ | 日本丰满少妇裸体自慰| 欧美日本不卡视频| 久久综合综合久久综合| 天天操天天摸天天舔| www久久精品| 激情综合色综合久久综合| 久久只有这里有精品| 国产精品蜜臀在线观看| 91美女片黄在线观看91美女| 777a∨成人精品桃花网| 午夜电影久久久| 波多野结衣福利| 91精品国产美女浴室洗澡无遮挡| 一区在线观看视频| 国产一区日韩二区欧美三区| 欧美黄色激情视频| 久久色.com| 91小宝寻花一区二区三区| 欧美丰满美乳xxx高潮www| 亚洲一线二线三线视频| 国产成人精品综合久久久久99 | 久久一区二区电影| 国产精品无码永久免费888| 日本泡妞xxxx免费视频软件| 久久久亚洲精品石原莉奈| 国产一区二区精品久久99| 在线观看日韩精品| 狠狠色丁香久久婷婷综合_中 | 亚洲综合丝袜美腿| 久久久久9999| 国产精品毛片久久久久久| 怡红院一区二区| 精品第一国产综合精品aⅴ| 99精品久久只有精品| 欧美一级片在线观看| 成人黄色免费短视频| 日韩免费看网站| 成人性生交大片免费看在线播放 | 精品91自产拍在线观看一区| 99精品国产91久久久久久| 欧美精品一区二区三| 欧洲美熟女乱又伦| 亚洲日韩欧美一区二区在线| 丰腴饱满的极品熟妇| 一区二区高清视频在线观看| jizz18女人高潮| 国产精品久久久久影院色老大| 午夜男人的天堂| 久久先锋影音av鲁色资源| 国产吃瓜黑料一区二区| 中文字幕一区视频| 97人妻精品一区二区免费| 亚洲成人免费视频| 在线免费日韩av| 青青草原综合久久大伊人精品| 日本不卡一二区| 亚洲v日本v欧美v久久精品| 亚洲国产精品免费在线观看| 国产在线精品不卡| 日韩欧美一区电影| 国产精品91av| 亚洲欧美另类综合偷拍| 国产三级视频网站| 午夜久久久影院| 欧美性色综合网| 97久久精品人人做人人爽50路| 久久久精品黄色| 中文字幕第24页| 奇米色777欧美一区二区| 欧美浪妇xxxx高跟鞋交| 91在线porny国产在线看| 亚洲欧洲成人精品av97| 久久精品亚洲a| 国产成人av一区| 欧美一二三区在线观看| 天天躁日日躁狠狠躁av麻豆男男 | 国产精品18久久久久久久网站| 欧美激情在线一区二区| 99热精品一区二区| 久久先锋资源网| 久久久久久久毛片| 麻豆成人久久精品二区三区红 | 国内精品久久99人妻无码| 视频一区在线播放| 91精品国产福利| 日本黄色片在线播放| 视频在线观看国产精品| 91精品国产福利| 加勒比一区二区| 日韩激情中文字幕| 日韩欧美的一区| 国产麻豆天美果冻无码视频| 日韩电影在线观看网站| 色天天综合色天天久久| 国产精品一区2区| 国产精品色在线| 色噜噜狠狠成人网p站| 99热这里只有精品2| 亚洲国产一区二区三区| 一本久久综合亚洲鲁鲁五月天| 99久久99久久免费精品蜜臀| 亚洲女同一区二区| 欧美日韩一区二区电影| 99精品国产91久久久久久| 亚洲精品国产无套在线观| 9.1人成人免费视频网站| 91一区在线观看| 五月综合激情日本mⅴ| 日韩丝袜美女视频| 久久久久亚洲AV成人无在 | 日韩精品免费视频人成| 日韩欧美国产一区在线观看| 欧美天堂一区二区三区| 99精品在线观看视频| 另类中文字幕网| 美女www一区二区| 欧美日韩综合在线免费观看| 喷水视频在线观看| 精品一区二区三区在线观看国产| 久久久国产综合精品女国产盗摄| 免费在线观看黄色小视频| 91蜜桃传媒精品久久久一区二区| 日韩精品一二区| 久久久久99精品一区| 色一区在线观看| 粉嫩av懂色av蜜臀av分享| 国产真实乱偷精品视频免| 1024国产精品| 日韩欧美一级精品久久| 日韩亚洲欧美中文字幕| 日韩黄色一区二区| 国产综合久久久久久鬼色| 亚洲私人黄色宅男| 欧美一区二区三区白人| 亚洲少妇xxx| 中文字幕18页| 国产露脸91国语对白| 一级日本不卡的影视| 亚洲精品在线电影| 在线中文字幕一区二区| www.视频一区| 青青草97国产精品免费观看无弹窗版| 国产日产欧产精品推荐色| 欧美在线你懂的| 免费成人深夜夜行p站| 高清在线观看日韩| 亚洲少妇最新在线视频| 欧美一区二区福利视频| 欧美日韩色视频| 日本japanese极品少妇| 成人性生交大片| 日韩电影在线免费看| 国产精品传媒视频| 欧美成人免费网站| 欧美亚男人的天堂| 亚洲一区电影在线观看| 国产黄色三级网站| 91浏览器在线视频| 成人性视频网站| 国内精品久久久久影院一蜜桃|