深入剖析Flex4与自定义布局关系

在学习Flex4的过程中,你对自定义布局的概念是否熟悉,这里和大家分享一下Flex4与自定义布局的关系,Flex4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。

在巫溪等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、做网站 网站设计制作按需网站开发,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,成都外贸网站制作,巫溪网站建设费用合理。

Flex4与自定义布局

如果您还不熟悉Flex4的***功能,那么有些内容肯定是您想要了解的。Flex4/Spark组件架构的新功能之一是可以定制一个容器的布局而不必改变容器本身。您需要做的就是定义一个自定义布局。

Flex4/Spark架构中的容器并不控制它们自己的布局。相反,每种容器具有一个布局属性,用于确定如何在屏幕上设置子元素的布局。可以使用一个单独的Group容器,并赋予其一个垂直布局、水平布局或平铺布局,这取决于您将如何创建它。
代码很简单,如下所示:
 

 
 
 
  1.  
  2.  
  3.  

不过真正的好处在于您不必局限于框架中定义的默认布局。您可以轻松定制BaseLayout类来实现自己定制的布局逻辑。下面是一个简单的例子,显示了如何实现一个在原点周围顺时针放置组件的布局。只要单击左下方的按钮就可以将更多按钮添加到布局。

下面是主应用程序文件的代码。可以看到,代码相当简单。这就是一个DataGroup,有点像一个重复程序(repeater),它包含一组按钮。这个容器的布局基于一个自定义布局实现。在creationComplete中,填充DataGroup的数据提供程序,从而在布局中创建按钮实例。

可以看到,DataGroup实例的布局受CircularLayout类控制(该类如下所示)。该类只是循环遍历datagroup对象的子对象并将它们按顺时针方向放在一个圆圈内。我查看了VerticalLayout类的源代码,弄清了它的工作方式,并由此开始构建自己的布局实现。
 

 
 
 
  1. package  
  2. {  
  3. importmx.core.ILayoutElement;  
  4.  
  5. importspark.layouts.supportClasses.LayoutBase;  
  6.  
  7. publicclassCircularLayoutextendsLayoutBase  
  8. {  
  9. overridepublicfunctionupdateDisplayList(w:Number,h:Number):void  
  10. {  
  11. super.updateDisplayList(w,h);  
  12.  
  13. if(!target)  
  14. return;  
  15.  
  16. varlayoutElement:ILayoutElement;  
  17. varcount:uint=target.numElements;  
  18.  
  19. varangle:Number=360/count;  
  20. varradius:Number=Math.min(target.width/2,target.height/2)-25;  
  21.  
  22. varw2:Number=target.width/2;  
  23. varh2:Number=target.height/2;  
  24.  
  25. for(vari:int=0;i
  26. {  
  27. layoutElement=target.getElementAt(i);  
  28.  
  29. if(!layoutElement||!layoutElement.includeInLayout)  
  30. continue;  
  31.  
  32. varradAngle:Number=(angle*i)*(Math.PI/180);  
  33.  
  34. var_x:Number=Math.sin(radAngle);  
  35. var_y:Number=-Math.cos(radAngle);  
  36.  
  37. layoutElement.setLayoutBoundsPosition(w2+(_x*radius)-25,h2+(_y*radius)-10);  
  38. }  
  39. }  
  40. }  
  41. }  
  42.  
  43. xmlns:fx="http://ns.adobe.com/mxml/2009" 
  44. xmlns:s="library://ns.adobe.com/flex/spark" 
  45. xmlns:mx="library://ns.adobe.com/flex/halo"> 
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  

这个示例中使用的项目渲染器实际上是最基本的。它是一个只包含一个按钮的ItemRenderer实例,简单明了并且很容易看到产生的结果。

【编辑推荐】

  1. Flex基础 Flex布局学习手册
  2. 深入剖析Flex Builder布局和导航
  3. 学习总结 在Flex中如何嵌入Flex字体
  4. 揭开Flex正则表达式的神秘面纱
  5. FlexBuilder开发方法及特点解析 

当前名称:深入剖析Flex4与自定义布局关系
当前链接:http://www.mswzjz.com/qtweb/news44/194994.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联