加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Flex Chart 中绘制3D图表

发布时间:2020-12-15 04:06:43 所属栏目:百科 来源:网络整理
导读:前一阵在论坛上看到一个兄弟,想在Flex Chart中为图例设置3D效果,近几天查找了些资料,动手做了个DEMO供大家参考! DEMO演示地址 http://xingjunli.webs.com/flash/flexChartDemo.swf ,先来个图片看看最终效果: 相关知识点 1、图表使用的我就不多做介绍了,网

前一阵在论坛上看到一个兄弟,想在Flex Chart中为图例设置3D效果,近几天查找了些资料,动手做了个DEMO供大家参考!
DEMO演示地址
http://xingjunli.webs.com/flash/flexChartDemo.swf,先来个图片看看最终效果:


相关知识点
1、图表使用的我就不多做介绍了,网上也很多官方也有不错的教程(参考:Skinning ChartItem objects
);
2、要自定义图表Series,我们要做的就是重写ProgrammaticSkin基类
并实现IDataRenderer接口方法中的updateDisplayList方法,在Series中应用我们自定义的外观类“drawhelper.histogramSkin”就好了如:


[xhtml] view plain copy print ?
  1. <mx:ColumnSeriesshowDataEffect="slideIn"hideDataEffect="slideOut"xField="label"yField="value"itemRenderer="drawhelper.histogramSkin"/>

<mx:ColumnSeries showDataEffect="slideIn" hideDataEffect="slideOut" xField="label" yField="value" itemRenderer="drawhelper.histogramSkin" />


3、我们这里使用Graphic在2D场景中绘制(3D)立方体的方式绘制Series,先理解应用3D坐标(在Series中绘制是从下向上绘制的所你看到的绘制过程中坐标系刚好是倒转过来的)如图:


实现过程及代码:
1、自定义立方图外观类:

[xhtml] view plain copy print ?
  1. package drawhelper

  2. {

  3. import flash.geom.Point;


  4. import mx.charts.series.items.ColumnSeriesItem;

  5. import mx.core.IDataRenderer;

  6. import mx.skins.ProgrammaticSkin;



  7. public class solidSkin extends ProgrammaticSkin implements IDataRenderer

  8. {

  9. private var colors:Array = [0x60cb00,0x6a7a88,0x3698ff,0x66a800,0xff6600,0x655fc8,0xd2691e];

  10. private var _chartItem:ColumnSeriesItem;


  11. public function solidSkin()

  12. {

  13. super();

  14. }

  15. public function get data():Object

  16. {

  17. return Object(_chartItem);

  18. }

  19. public function set data(value:Object):void

  20. {

  21. _chartItem = value as ColumnSeriesItem;

  22. invalidateDisplayList();

  23. }

  24. override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void

  25. {

  26. super.updateDisplayList(unscaledWidth,unscaledHeight);

  27. this.graphics.clear();

  28. var points:Array = getPoints(unscaledWidth*0.65,unscaledHeight);

  29. drawFill(points[4],points[7],points[6],points[5]);

  30. drawFill(points[6],points[2],points[3],points[7]);

  31. drawFill(points[7],points[4],points[0],points[3]);

  32. this.graphics.endFill();


  33. }


  34. //根据长宽获取3D坐标信息

  35. function getPoints(w:Number,h:Number):Array

  36. {

  37. var points:Array = new Array(8);

  38. points[0] = new Point(0,h);

  39. points[1] = new Point(w,h);

  40. points[2] = new Point(w,0);

  41. points[3] = new Point(0,0);

  42. points[4] = new Point(0+w/2.0,h+w/2.0);

  43. points[5] = new Point(w+w/2.0,h+w/2.0);

  44. points[6] = new Point(w+w/2.0,0+w/2.0);

  45. points[7] = new Point(0+w/2.0,0+w/2.0);

  46. return points;

  47. }

  48. //根据传入的坐标信息,绘制线条及填充绘制区域

  49. function drawFill(...args):void

  50. {

  51. with(this.graphics)

  52. {

  53. lineStyle(0.5,0x7DBFC6,0.8);

  54. beginFill(colors[(_chartItem == null)?0:_chartItem.index],0.95);

  55. moveTo(args[0].x,args[0].y);

  56. for(var i=1;i<args.length;i++)

  57. {

  58. lineTo(args[i].x,args[i].y);

  59. }

  60. }

  61. }


  62. }

  63. }

package drawhelper { import flash.geom.Point; import mx.charts.series.items.ColumnSeriesItem; import mx.core.IDataRenderer; import mx.skins.ProgrammaticSkin; public class solidSkin extends ProgrammaticSkin implements IDataRenderer { private var colors:Array = [0x60cb00,0xd2691e]; private var _chartItem:ColumnSeriesItem; public function solidSkin() { super(); } public function get data():Object { return Object(_chartItem); } public function set data(value:Object):void { _chartItem = value as ColumnSeriesItem; invalidateDisplayList(); } override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void { super.updateDisplayList(unscaledWidth,unscaledHeight); this.graphics.clear(); var points:Array = getPoints(unscaledWidth*0.65,unscaledHeight); drawFill(points[4],points[5]); drawFill(points[6],points[7]); drawFill(points[7],points[3]); this.graphics.endFill(); } //根据长宽获取3D坐标信息 function getPoints(w:Number,h:Number):Array { var points:Array = new Array(8); points[0] = new Point(0,h); points[1] = new Point(w,h); points[2] = new Point(w,0); points[3] = new Point(0,0); points[4] = new Point(0+w/2.0,h+w/2.0); points[5] = new Point(w+w/2.0,h+w/2.0); points[6] = new Point(w+w/2.0,0+w/2.0); points[7] = new Point(0+w/2.0,0+w/2.0); return points; } //根据传入的坐标信息,绘制线条及填充绘制区域 function drawFill(...args):void { with(this.graphics) { lineStyle(0.5,0.8); beginFill(colors[(_chartItem == null)?0:_chartItem.index],0.95); moveTo(args[0].x,args[0].y); for(var i=1;i<args.length;i++) { lineTo(args[i].x,args[i].y); } } } } }
2、自定义圆柱图外观类:


[c-sharp] view plain copy print ?
  1. package drawhelper

  2. {

  3. import flash.display.Graphics;

  4. import flash.display.GradientType;

  5. import mx.charts.series.items.ColumnSeriesItem;

  6. import mx.core.IDataRenderer;

  7. import mx.skins.ProgrammaticSkin;


  8. publicclass histogramSkin extends ProgrammaticSkin implements IDataRenderer

  9. {

  10. private var colors:Array = [0x60cb00,0xd2691e];

  11. private var _chartItem:ColumnSeriesItem;


  12. public function histogramSkin(){}

  13. public function get data():Object

  14. {

  15. return Object(_chartItem);

  16. }

  17. public function set data(value:Object):void

  18. {

  19. _chartItem = value as ColumnSeriesItem;

  20. invalidateDisplayList();

  21. }

  22. overrideprotected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void

  23. {

  24. super.updateDisplayList(unscaledWidth,unscaledHeight);

  25. var g:Graphics = graphics;

  26. g.clear();

  27. g.beginFill(colors[(_chartItem == null)?0:_chartItem.index]);

  28. g.drawRect(0,unscaledWidth * 0.125,unscaledWidth,unscaledHeight);

  29. g.lineStyle(1,0xffffff,0.25);

  30. g.beginFill(colors[(_chartItem == null)?0:_chartItem.index]);

  31. g.drawEllipse(0,unscaledWidth * 0.25);

  32. g.endFill();

  33. }


  34. }

  35. }

package drawhelper { import flash.display.Graphics; import flash.display.GradientType; import mx.charts.series.items.ColumnSeriesItem; import mx.core.IDataRenderer; import mx.skins.ProgrammaticSkin; public class histogramSkin extends ProgrammaticSkin implements IDataRenderer { private var colors:Array = [0x60cb00,0xd2691e]; private var _chartItem:ColumnSeriesItem; public function histogramSkin(){} public function get data():Object { return Object(_chartItem); } public function set data(value:Object):void { _chartItem = value as ColumnSeriesItem; invalidateDisplayList(); } override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight); var g:Graphics = graphics; g.clear(); g.beginFill(colors[(_chartItem == null)?0:_chartItem.index]); g.drawRect(0,unscaledHeight); g.lineStyle(1,0.25); g.beginFill(colors[(_chartItem == null)?0:_chartItem.index]); g.drawEllipse(0,unscaledWidth * 0.25); g.endFill(); } } }
3、实现立方图组件


[xhtml] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <mx:Paneltitle="{Title}"xmlns:mx="http://www.adobe.com/2006/mxml"width="100%"height="100%">

  3. <mx:Script>

  4. <!--[CDATA[

  5. import mx.charts.chartClasses.CartesianCanvasValue;

  6. import mx.graphics.codec.JPEGEncoder;

  7. import mx.collections.ArrayCollection;

  8. import drawhelper.histogramSkin;


  9. [Bindable]

  10. public var expenses:ArrayCollection;

  11. [Bindable]

  12. private var lengValue:String;

  13. [Bindable]

  14. private var Title:String;

  15. [Bindable]

  16. private var xLabel:String;

  17. [Bindable]

  18. private var isShowAllTrip:Boolean =false;

  19. public function init(datas:ArrayCollection,leng:String,title:String,xtitle:String="",showAllTrip:Boolean=false):void

  20. {

  21. isShowAllTrip = showAllTrip;

  22. Title = title;

  23. xLabel= xtitle;

  24. if(expenses != null && expenses.length>0)

  25. {

  26. expenses.removeAll();

  27. }

  28. else

  29. {

  30. expenses = new ArrayCollection();

  31. }

  32. expenses = datas;

  33. lengValue = leng;

  34. }

  35. ]]-->

  36. </mx:Script>

  37. <mx:SeriesSlideid="slideIn"duration="600"direction="up"/>

  38. <mx:SeriesSlideid="slideOut"duration="200"direction="down"/>

  39. <mx:ColumnCharthorizontalCenter="true"fontSize="13.5"id="myChart"dataProvider="{expenses}"

  40. showDataTips="{!isShowAllTrip}"textAlign="center"width="95%"height="100%"showAllDataTips="{isShowAllTrip}">

  41. <mx:seriesFilters>

  42. <mx:Array/>

  43. </mx:seriesFilters>

  44. <mx:horizontalAxis>

  45. <mx:CategoryAxisdataProvider="{expenses}"categoryField="label"/>

  46. </mx:horizontalAxis>

  47. <mx:series>

  48. <mx:ColumnSeriesshowDataEffect="slideIn"hideDataEffect="slideOut"xField="label"yField="value"itemRenderer="drawhelper.solidSkin"/>

  49. </mx:series>

  50. </mx:ColumnChart>

  51. <mx:Labelid="xMsg"text="{xLabel}"fontSize="14"width="95%"textAlign="center"letterSpacing="1.5">

  52. </mx:Label>

  53. <mx:Legendid="lenged"x="{parent.width - lenged.width - 50}"y="5"visible="{(lengValue != '')}">

  54. <mx:LegendItemlabel="{lengValue}"styleName="legendItem"/>

  55. </mx:Legend>

  56. </mx:Panel>

<?xml version="1.0" encoding="utf-8"?> <mx:Panel title="{Title}" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> <mx:Script> <!--[CDATA[ import mx.charts.chartClasses.CartesianCanvasValue; import mx.graphics.codec.JPEGEncoder; import mx.collections.ArrayCollection; import drawhelper.histogramSkin; [Bindable] public var expenses:ArrayCollection; [Bindable] private var lengValue:String; [Bindable] private var Title:String; [Bindable] private var xLabel:String; [Bindable] private var isShowAllTrip:Boolean =false; public function init(datas:ArrayCollection,xtitle:String="",showAllTrip:Boolean=false):void { isShowAllTrip = showAllTrip; Title = title; xLabel= xtitle; if(expenses != null && expenses.length>0) { expenses.removeAll(); } else { expenses = new ArrayCollection(); } expenses = datas; lengValue = leng; } ]]--> </mx:Script> <mx:SeriesSlide id="slideIn" duration="600" direction="up"/> <mx:SeriesSlide id="slideOut" duration="200" direction="down"/> <mx:ColumnChart horizontalCenter="true" fontSize="13.5" id="myChart" dataProvider="{expenses}" showDataTips="{!isShowAllTrip}" textAlign="center" width="95%" height="100%" showAllDataTips="{isShowAllTrip}"> <mx:seriesFilters> <mx:Array/> </mx:seriesFilters> <mx:horizontalAxis> <mx:CategoryAxis dataProvider="{expenses}" categoryField="label" /> </mx:horizontalAxis> <mx:series> <mx:ColumnSeries showDataEffect="slideIn" hideDataEffect="slideOut" xField="label" yField="value" itemRenderer="drawhelper.solidSkin" /> </mx:series> </mx:ColumnChart> <mx:Label id="xMsg" text="{xLabel}" fontSize="14" width="95%" textAlign="center" letterSpacing="1.5"> </mx:Label> <mx:Legend id="lenged" x="{parent.width - lenged.width - 50}" y="5" visible="{(lengValue != '')}"> <mx:LegendItem label="{lengValue}" styleName="legendItem" /> </mx:Legend> </mx:Panel>
4、实现柱状图组件


[xhtml] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <mx:Paneltitle="{Title}"xmlns:mx="http://www.adobe.com/2006/mxml"width="100%"height="100%">

  3. <mx:Script>

  4. <!--[CDATA[

  5. import mx.charts.chartClasses.CartesianCanvasValue;

  6. import mx.graphics.codec.JPEGEncoder;

  7. import mx.collections.ArrayCollection;

  8. import drawhelper.histogramSkin;


  9. [Bindable]

  10. public var expenses:ArrayCollection;

  11. [Bindable]

  12. private var lengValue:String;

  13. [Bindable]

  14. private var Title:String;

  15. [Bindable]

  16. private var xLabel:String;

  17. [Bindable]

  18. private var isShowAllTrip:Boolean =false;

  19. public function init(datas:ArrayCollection,showAllTrip:Boolean=false):void

  20. {

  21. isShowAllTrip = showAllTrip;

  22. Title = title;

  23. xLabel= xtitle;

  24. if(expenses != null && expenses.length>0)

  25. {

  26. expenses.removeAll();

  27. }

  28. else

  29. {

  30. expenses = new ArrayCollection();

  31. }

  32. expenses = datas;

  33. lengValue = leng;

  34. }

  35. ]]-->

  36. </mx:Script>

  37. <mx:SeriesSlideid="slideIn"duration="600"direction="up"/>

  38. <mx:SeriesSlideid="slideOut"duration="200"direction="down"/>

  39. <mx:ColumnCharthorizontalCenter="true"fontSize="13.5"id="myChart"dataProvider="{expenses}"

  40. showDataTips="{!isShowAllTrip}"textAlign="center"width="95%"height="100%"showAllDataTips="{isShowAllTrip}">

  41. <mx:seriesFilters>

  42. <mx:Array/>

  43. </mx:seriesFilters>

  44. <mx:horizontalAxis>

  45. <mx:CategoryAxisdataProvider="{expenses}"categoryField="label"/>

  46. </mx:horizontalAxis>

  47. <mx:series>

  48. <mx:ColumnSeriesshowDataEffect="slideIn"hideDataEffect="slideOut"xField="label"yField="value"itemRenderer="drawhelper.histogramSkin"/>

  49. </mx:series>

  50. </mx:ColumnChart>

  51. <mx:Labelid="xMsg"text="{xLabel}"fontSize="14"width="95%"textAlign="center"letterSpacing="1.5">

  52. </mx:Label>

  53. <mx:Legendid="lenged"x="{parent.width - lenged.width - 50}"y="5"visible="{(lengValue != '')}">

  54. <mx:LegendItemlabel="{lengValue}"styleName="legendItem"/>

  55. </mx:Legend>

  56. </mx:Panel>

<?xml version="1.0" encoding="utf-8"?> <mx:Panel title="{Title}" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> <mx:Script> <!--[CDATA[ import mx.charts.chartClasses.CartesianCanvasValue; import mx.graphics.codec.JPEGEncoder; import mx.collections.ArrayCollection; import drawhelper.histogramSkin; [Bindable] public var expenses:ArrayCollection; [Bindable] private var lengValue:String; [Bindable] private var Title:String; [Bindable] private var xLabel:String; [Bindable] private var isShowAllTrip:Boolean =false; public function init(datas:ArrayCollection,showAllTrip:Boolean=false):void { isShowAllTrip = showAllTrip; Title = title; xLabel= xtitle; if(expenses != null && expenses.length>0) { expenses.removeAll(); } else { expenses = new ArrayCollection(); } expenses = datas; lengValue = leng; } ]]--> </mx:Script> <mx:SeriesSlide id="slideIn" duration="600" direction="up"/> <mx:SeriesSlide id="slideOut" duration="200" direction="down"/> <mx:ColumnChart horizontalCenter="true" fontSize="13.5" id="myChart" dataProvider="{expenses}" showDataTips="{!isShowAllTrip}" textAlign="center" width="95%" height="100%" showAllDataTips="{isShowAllTrip}"> <mx:seriesFilters> <mx:Array/> </mx:seriesFilters> <mx:horizontalAxis> <mx:CategoryAxis dataProvider="{expenses}" categoryField="label" /> </mx:horizontalAxis> <mx:series> <mx:ColumnSeries showDataEffect="slideIn" hideDataEffect="slideOut" xField="label" yField="value" itemRenderer="drawhelper.histogramSkin" /> </mx:series> </mx:ColumnChart> <mx:Label id="xMsg" text="{xLabel}" fontSize="14" width="95%" textAlign="center" letterSpacing="1.5"> </mx:Label> <mx:Legend id="lenged" x="{parent.width - lenged.width - 50}" y="5" visible="{(lengValue != '')}"> <mx:LegendItem label="{lengValue}" styleName="legendItem" /> </mx:Legend> </mx:Panel>
5、传入数据,绑定组件完成图表


[xhtml] view plain copy print ?
  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"width="800"height="300"layout="absolute"creationComplete="init()"

  3. xmlns:chart="component.chart.*">

  4. <mx:Style>

  5. /* CSS file */

  6. Application

  7. {

  8. backgroundColor:#eef1f4;

  9. }


  10. Panel

  11. {

  12. borderStyle: solid;

  13. borderColor: #dbe2e8;

  14. borderThickness: 2;

  15. roundedBottomCorners: false;

  16. cornerRadius: 1;

  17. headerHeight: 27;

  18. backgroundAlpha: 1;

  19. dropShadowEnabled: true;

  20. shadowDistance: 1;

  21. shadowDirection: center;

  22. titleStyleName: "mypanelTitle";

  23. }


  24. .mypanelTitle

  25. {

  26. letterSpacing: 1;

  27. textAlign: center;

  28. fontSize: 14;

  29. }

  30. .legendItem

  31. {

  32. fontSize:14;

  33. color:#577ba1;

  34. fontFamily: Arial;

  35. fill:#577ba1;

  36. fontWeight: normal;

  37. }

  38. .legendItemArea

  39. {

  40. fontSize:14;

  41. fontFamily: Arial;

  42. }

  43. ProgressBar {

  44. borderColor: #cccccc;

  45. barColor: #8ec0e2;

  46. trackColors: #eae8e8,#efeeec;

  47. color: #000000;

  48. paddingLeft: 6;

  49. paddingRight: 5;

  50. textIndent: 0;

  51. letterSpacing: 1;

  52. trackHeight: 20;

  53. verticalGap: 5;

  54. fontFamily: Arial;

  55. fontSize: 10;

  56. fontWeight: bold;

  57. }


  58. </mx:Style>

  59. <mx:Script>

  60. <!--[CDATA[

  61. import mx.collections.ArrayCollection;

  62. function init():void

  63. {

  64. boundChart(

  65. {data:[25,36,77,65,25,35],date:[2003,2004,2005,2006,2007,2008],date_format:"m.d",title:"自定义图例样式",xtitle:"ProgrammaticSkin Demo"},

  66. "统计图例"

  67. );

  68. }

  69. /*

  70. * cData: 图片数据

  71. * cleng: 页脚

  72. * showAllTrip: 是否显示所有数据标记

  73. */

  74. function boundChart(cData:Object,cleng:String,showAllTrip:Boolean=false):void

  75. {

  76. var o:* = cData;

  77. var dataCollection:ArrayCollection = getArrayCollection(o.date,o.data);

  78. chart1.init(dataCollection,cleng,o.title,o.xtitle,showAllTrip);

  79. chart2.init(dataCollection,showAllTrip);

  80. }

  81. public function getArrayCollection(arrLabels:Array,arrValues:Array):ArrayCollection

  82. {

  83. var result:ArrayCollection = null;

  84. var length:int = arrLabels.length;

  85. if(arrLabels != null && arrValues != null && length== arrValues.length)

  86. {

  87. result = new ArrayCollection();

  88. for(var i:int=0;i<length;i++)

  89. {

  90. result.addItem({label:arrLabels[i],value:Number(arrValues[i])});

  91. }

  92. }

  93. return result;

  94. }

  95. ]]-->

  96. </mx:Script>

  97. <mx:HBox>

  98. <mx:Paneltitle="圆柱图"width="395"height="300">

  99. <chart:ClumnChartid="chart1">


  100. </chart:ClumnChart>

  101. </mx:Panel>

  102. <mx:Paneltitle="立方图"width="395"height="300">

  103. <chart:solidChartid="chart2">


  104. </chart:solidChart>

  105. </mx:Panel>

  106. </mx:HBox>

  107. </mx:Application>

<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="800" height="300" layout="absolute" creationComplete="init()" xmlns:chart="component.chart.*"> <mx:Style> /* CSS file */ Application { backgroundColor:#eef1f4; } Panel { borderStyle: solid; borderColor: #dbe2e8; borderThickness: 2; roundedBottomCorners: false; cornerRadius: 1; headerHeight: 27; backgroundAlpha: 1; dropShadowEnabled: true; shadowDistance: 1; shadowDirection: center; titleStyleName: "mypanelTitle"; } .mypanelTitle { letterSpacing: 1; textAlign: center; fontSize: 14; } .legendItem { fontSize:14; color:#577ba1; fontFamily: Arial; fill:#577ba1; fontWeight: normal; } .legendItemArea { fontSize:14; fontFamily: Arial; } ProgressBar { borderColor: #cccccc; barColor: #8ec0e2; trackColors: #eae8e8,#efeeec; color: #000000; paddingLeft: 6; paddingRight: 5; textIndent: 0; letterSpacing: 1; trackHeight: 20; verticalGap: 5; fontFamily: Arial; fontSize: 10; fontWeight: bold; } </mx:Style> <mx:Script> <!--[CDATA[ import mx.collections.ArrayCollection; function init():void { boundChart( {data:[25,"统计图例" ); } /* * cData: 图片数据 * cleng: 页脚 * showAllTrip: 是否显示所有数据标记 */ function boundChart(cData:Object,showAllTrip:Boolean=false):void { var o:* = cData; var dataCollection:ArrayCollection = getArrayCollection(o.date,o.data); chart1.init(dataCollection,showAllTrip); chart2.init(dataCollection,showAllTrip); } public function getArrayCollection(arrLabels:Array,arrValues:Array):ArrayCollection { var result:ArrayCollection = null; var length:int = arrLabels.length; if(arrLabels != null && arrValues != null && length== arrValues.length) { result = new ArrayCollection(); for(var i:int=0;i<length;i++) { result.addItem({label:arrLabels[i],value:Number(arrValues[i])}); } } return result; } ]]--> </mx:Script> <mx:HBox> <mx:Panel title="圆柱图" width="395" height="300"> <chart:ClumnChart id="chart1"> </chart:ClumnChart> </mx:Panel> <mx:Panel title="立方图" width="395" height="300"> <chart:solidChart id="chart2"> </chart:solidChart> </mx:Panel> </mx:HBox> </mx:Application>


本篇结束,希望对你有帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读