在Flex当中,如果父类已经拥有了子元素,然后你再继承这个父类,并且在子类当中也定义了mxml的标签元素,那么将会只显示子类的mxml标签元素而不会显示父类的mxml标签元素。
当然你可以重写createChildren方法,然后把你要显示的子元素以代码形式添加,这样绝对可以把父类的元素全部继承下来。但是为什么写标签形式就不行呢?
我们仔细窥探一下,发现用mxml标签形式写的时候,flex会把这些标签放通过 mxmlContent的set方法放到一个数组中,然后在createChildren的时候把这个数组中的元素一个一个加到显示列表中。
如果你的子类继承了父类,而且子类也定义了mxml标签,那么当初始化子类的时候,也会调用mxmlContent的方法,这样的话就会把父类的保存父类标签的数组冲掉,导致只会现实子类的标签了。
明白了这些,那我就直接贴代码了。
App:
<?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/mx" minWidth="955" minHeight="600" xmlns:Vgroup="com.view.Vgroup.*"> <s:layout> <s:VerticalLayout/> </s:layout> <Vgroup:ChildVGroup2/> <Vgroup:ChildVGroup/> </s:Application>ChildVGroup:
<?xml version="1.0" encoding="utf-8"?> <Vgroup:ParentVGroup xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:Vgroup="com.view.Vgroup.*"> <fx:Script> <![CDATA[ override protected function createChildren():void { var currentMxmlContent:Array = super.mx_internal::getMXMLContent(); var allMxmlContentArray:Array = mxmlContentArray.concat(currentMxmlContent); mxmlContent = allMxmlContentArray; super.createChildren(); } ]]> </fx:Script> <s:Button label="tv3"/> <s:Button label="tv4"/> <s:Button label="tv5"/> <s:Button label="tv6"/> </Vgroup:ParentVGroup>
ChildVGroup2 和 ChildGroup 一样,只是button的label不一样,以此来区别。
ParentVGroup:
<?xml version="1.0" encoding="utf-8"?> <s:VGroup xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <fx:Script> <![CDATA[ public var mxmlContentArray:Array;//在加载类的时候,第一次会加载Parent的容器的child(例如v1,v2),然后放到这个数组中。 //在默认的实现当中,如果parent的子类也有child,那么就会覆盖这个数组。所以我们要先把parent的child的保存起来。 override public function set mxmlContent(value:Array):void { super.mxmlContent = value; if(!mxmlContentArray) { mxmlContentArray = value; } } ]]> </fx:Script> <s:Button label="v1"/> <s:Button label="v2"/> </s:VGroup>
相关推荐
在一个asp.net项目中,用户自定义控件是很经常使用的,一个项目中一般都会有多个用户自定义控件,而为了代码重用,通常这些控件都会继承一个父类, 一个页面还会引用多个用户自定义控件。 这种情况如果不注意控制就...
让你的窗体都继承一个类,在这个类里面写个方法,判断窗体里是否有DevExpress.XtraEditors.DateEdit控件,有的话就给他的MaxValue和MinValue设置下值
D、子类只能继承父类的方法,而不继承状态 7.下列关于构造方法的说法正确的是( )。 A、因为构造方法名与类名必须相同,构造方法在创建对象时被执行。 B、构造方法是给对象赋初值,所以没有返回值,必须用void来...
继承该父类定义了两个子类NumberClock(数字钟)和GraphClock(模拟钟),通过该程序可以清楚地理解面向对象的概念,包括:封装、继承、多态、事件等,是很好地学习面向对象程序设计、自定义控件的好例子。
Android中自定义View的实现比较简单,无非就是继承父类,然后重载方法,即便如此,在实际编码中难免会遇到一些坑,我把自己遇到的一些问题和解决方法总结一下,希望对广大码友们有所帮助。 注意点① 用xml定义...
父类为TJDUIControl,继承此类并重写绘制方法可创建自己的DirectUI控件。 ~~~pascal type TJDUIImageView = class(TJDUIGraphicsControl) private FImageFile: String; protected procedure PaintSelf...
1.GUI常用库 ①标准库:tkinter ②扩展库:wxPython、PyGObject、PyQt、PySide ...class myFrame(wx.Frame): #继承父类 def __init__(self,superior): wx.Frame.__init__(self,parent=superior,title=u'My First Fo
滑动关闭界面,新建一个布局,在该布局内统一做滑动处理,创建成一个父类A,所以需要滑动关闭的界面继承该父类
1. 控件由SSToolBox作为父类, SSCameraToolBox作为子类(因为我需要几个不同的ToolBox,所以做了继承), SSToolBoxItem作为添加到SSCameraToolBox的每一项Bar 2. 每添加一个SSToolBoxItem,都会提供一个接口设置相...
所有应用的Activity都继承于android.app.Activity类,该类是Android提供的基层类,其他的Activity继承该父类后,通过父类的方法来实现各种功能。 Activity 生命周期图如下: 在android中,Activity拥有四种基本...
class Center(QtGui.QWidget): #继承父类QWidget def __init__(self,parent=None): QtGui.QWidget.__init__(self,parent) #需要两个构造函数,一个Center类的,一个QWidget类的 self.setWindowTitle('center') ...
一、技术要点:基于封装、继承、多态三大特性,结合单例模式实现数据库保存用户信息的操作 二、主要功能: ① 开户与登录,开户成功自动生成卡号与ID并将用户信息保存在数据库; ② 实现存款、取款、转账、改密及...
xamarin学习笔记B03(ios的UIView的了解)它是所有视图控件的父类。例如UIButton、UILabel、UIImageView等都最终是继承自UIView。它可以添加其它视图作为它的子视图。
WinForm 皮肤,自定义控件 使用方式: BaseForm: public partial class MainForm : BaseForm //修改父类 Form 为 BaseForm Table : table支持列、行 拖动;点击标题排序; 当数据源更改时,需调用以下方法: table...
什么是View?实现View滑动的方式有哪些? 1. 关于View我们需要知道的 (1)什么是View?...通过继承View,并重写相应方法,我们就能够实现具有各种外观及行为的UI控件。Button等控件我们之所以能够直接
当我们打算派生自己的 UI 控件时,首先定义一个继承 View 基类的子类,然后重写父类的方法。该代码演示了其中一些重写的方法自定义控件后的效果。该代码借鉴于疯狂IOS一书中的源码
功能描述: 是在继承于UICollectionViewLayout的基础上封装的控件, 目前支持竖向瀑布流(item等宽不等高、支持头脚视图)、水平瀑布流(item等高不等宽 不支持头脚视图)、竖向瀑布流( item等高不等宽、支持头脚视图)、...
NewMethod 演示new关键字覆盖父类方法实例 UseClass 演示C#类的使用实例 UseClassProperty 演示类属性(Property)的使用 UseDElegate 演示委托的使用 UseException 演示异常的使用 UseInterface 演示接口的...
1、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时; 2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数); 3、在类中的所有非静态的对象数据成员,它们对应的类中有...
编写一个万年历理解图像界面的基本组 织窗口,以及类、方法的调用,以及添加控件、并在窗口中显示,可以对年份、月份、 当前的时间进行查询方便用户的使用。 2.设计方案论证 2.1需求分析 本次课程设计是编写一个...