在FLEX Panel的Title上添加控件实例
2010-03-11 10:51
183 查看
一、自定义Panel组件
package test
{
import mx.containers.Panel;
import mx.core.UIComponent;
/**
* 自定义Panel
* **/
public class MyPanel extends Panel
{
import mx.controls.LinkButton;
import flash.events.MouseEvent;
import flash.events.Event;
private var _cusContr:UIComponent;//客户UI组件
public function get cusContr():UIComponent{
return _cusContr;
}
public function set cusContr(contr:UIComponent):void{
_cusContr=contr;
_cusContr=_cusContr;
}
public function MyPanel()
{
//trace("加载自定义Panel");
super();
}
/**
* 覆盖父类方法,创建自定义可视UI组件
**/
override protected function createChildren():void
{
trace("create child...");
super.createChildren();
titleBar.addChild(_cusContr);
}
/**
* 覆盖父类方法,更新自定义可视UI组件
* */
override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
//调整对象大小
_cusContr.setActualSize( _cusContr.getExplicitOrMeasuredWidth(),
_cusContr.getExplicitOrMeasuredHeight() );
var y:int = 4;
var x:int = this.width - _cusContr.width - 12;
_cusContr.move(x, y);
}
}
}
二、MXML文件引用自定Panel组件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="test.*" width="510" height="354">
<mx:Script>
<![CDATA[
import mx.controls.MenuBar;
import mx.controls.LinkButton;
import mx.controls.Button;
import mx.controls.Alert;
import mx.events.MenuEvent;
private var myBtn:Button;
private var myLinkBtn:LinkButton;
private var myMenuBar:MenuBar;
//初始化控件
public function disp():void{
// trace("MXML 初始化.....");
/**
* //添加普通按钮
myBtn=new Button();
myBtn.label="系统设置";
myBtn.addEventListener(MouseEvent.CLICK,clickHandler);
myPanel.cusContr=myBtn;
**/
//带链接的按钮
myLinkBtn=new LinkButton();
myLinkBtn.label="系统设置";
myLinkBtn.addEventListener(MouseEvent.CLICK,clickHandler);
myPanel.cusContr=myLinkBtn;
/**
//菜单
var xml:XML=<menuitem label="系统设置" >
<menuitem label="打开" type="radio" groupName="one"/>
<menuitem label="截图" type="radio" groupName="one"
toggled="true"/>
<menuitem type="separator"/>
<menuitem label="关闭" type="radio" groupName="one"/>
</menuitem>;
myMenuBar=new MenuBar();
myMenuBar.dataProvider=xml;
myMenuBar.labelField="@label";
myMenuBar.addEventListener(MenuEvent.ITEM_CLICK,clickHandler);
myPanel.cusContr=myMenuBar;
**/
//添加事件处理
function clickHandler(event:Event):void{
Alert.show("哈哈,终于编出来了","FLEX练习",Alert.OK);
}
}
]]>
</mx:Script>
<custom:MyPanel id="myPanel" width="392" height="297" title="在线视频会议" fontSize="12" initialize="disp();" layout="absolute">
</custom:MyPanel>
</mx:Application>
package test
{
import mx.containers.Panel;
import mx.core.UIComponent;
/**
* 自定义Panel
* **/
public class MyPanel extends Panel
{
import mx.controls.LinkButton;
import flash.events.MouseEvent;
import flash.events.Event;
private var _cusContr:UIComponent;//客户UI组件
public function get cusContr():UIComponent{
return _cusContr;
}
public function set cusContr(contr:UIComponent):void{
_cusContr=contr;
_cusContr=_cusContr;
}
public function MyPanel()
{
//trace("加载自定义Panel");
super();
}
/**
* 覆盖父类方法,创建自定义可视UI组件
**/
override protected function createChildren():void
{
trace("create child...");
super.createChildren();
titleBar.addChild(_cusContr);
}
/**
* 覆盖父类方法,更新自定义可视UI组件
* */
override protected function updateDisplayList (unscaledWidth:Number, unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
//调整对象大小
_cusContr.setActualSize( _cusContr.getExplicitOrMeasuredWidth(),
_cusContr.getExplicitOrMeasuredHeight() );
var y:int = 4;
var x:int = this.width - _cusContr.width - 12;
_cusContr.move(x, y);
}
}
}
二、MXML文件引用自定Panel组件
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:custom="test.*" width="510" height="354">
<mx:Script>
<![CDATA[
import mx.controls.MenuBar;
import mx.controls.LinkButton;
import mx.controls.Button;
import mx.controls.Alert;
import mx.events.MenuEvent;
private var myBtn:Button;
private var myLinkBtn:LinkButton;
private var myMenuBar:MenuBar;
//初始化控件
public function disp():void{
// trace("MXML 初始化.....");
/**
* //添加普通按钮
myBtn=new Button();
myBtn.label="系统设置";
myBtn.addEventListener(MouseEvent.CLICK,clickHandler);
myPanel.cusContr=myBtn;
**/
//带链接的按钮
myLinkBtn=new LinkButton();
myLinkBtn.label="系统设置";
myLinkBtn.addEventListener(MouseEvent.CLICK,clickHandler);
myPanel.cusContr=myLinkBtn;
/**
//菜单
var xml:XML=<menuitem label="系统设置" >
<menuitem label="打开" type="radio" groupName="one"/>
<menuitem label="截图" type="radio" groupName="one"
toggled="true"/>
<menuitem type="separator"/>
<menuitem label="关闭" type="radio" groupName="one"/>
</menuitem>;
myMenuBar=new MenuBar();
myMenuBar.dataProvider=xml;
myMenuBar.labelField="@label";
myMenuBar.addEventListener(MenuEvent.ITEM_CLICK,clickHandler);
myPanel.cusContr=myMenuBar;
**/
//添加事件处理
function clickHandler(event:Event):void{
Alert.show("哈哈,终于编出来了","FLEX练习",Alert.OK);
}
}
]]>
</mx:Script>
<custom:MyPanel id="myPanel" width="392" height="297" title="在线视频会议" fontSize="12" initialize="disp();" layout="absolute">
</custom:MyPanel>
</mx:Application>
相关文章推荐
- 在FLEX Panel的Title上添加控件实例
- 动态添加用户控件实例
- VB 如何提取网页源带码中的url链接,动态添加控件实例
- dataGridView控件--未将对象引用设置添加到对象的实例
- 动态添加用户控件实例
- javascript控制服务器控件——实例:为DropdownList动态添加删除选项
- C# winform动态添加控件实例
- ViewPager 二个子控件PagerTabStrip与PagerTitleStrip添加标题栏
- Treeview动态添加用户控件传值和取值的实例代码
- javascript操作html控件实例(javascript添加html)
- 动态添加用户控件实例
- javascript控制服务器控件——实例:为DropdownList动态添加删除选项
- Android ListView里控件添加监听方法的实例详解
- DataSet&DataTable如何绑定下拉列表控件获取不重复的值,如何添加一列自定义文字,并在下拉列表控件中显示自定义文字[winform学习实例]
- javascript控制服务器控件——实例:为DropdownList动态添加删除选项
- javascript操作html控件实例(javascript添加html)
- dataGridView控件--未将对象引用设置添加到对象的实例
- VS/MFC实例:对话框--为对话框添加控件
- JavaFX2-Ensemble学习(2)-在BorderPane中添加非上下左右中之外的控件和布局技巧
- 为 DataGridView 控件添加行号