IMenuBarItemRenderer
来源:互联网 发布:4y4淘宝店铺装修网站 编辑:程序博客网 时间:2024/05/08 17:59
package
{
import mx.controls.Image;
import mx.controls.menuClasses.MenuBarItem;
public class MyMenuBarItem extends MenuBarItem
{
private var image:Image;
public function MyMenuBarItem()
{
}
override protected function commitProperties():void
{
super.commitProperties();
if (data)
{
// <item label="Three" icon="assets/accessories-text-editor.png"/>
var icon:String = data.@icon;
image = new Image();
image.source = icon;
addChild(image);
}
}
override protected function measure():void
{
super.measure();
if (image)
{
measuredWidth += image.measuredWidth + 2;
measuredHeight = Math.max(image.measuredHeight, measuredHeight);
}
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (image)
{
image.x = (20 - image.measuredWidth) / 2;
image.setActualSize(image.measuredWidth, image.measuredHeight);
label.x = 20;
}
}
}
}
Note that the label and it's associated text is taken car of in the super class. And in the Application; <mx:MenuBar id="menuBar" // extends MenuBar class in order to gain access to menuBarItems and adjust their label x values // also extended to apply menu ItemRenderer public class ExtendedMenuBar extends MenuBar { public function ExtendedMenuBar() { super(); } override public function getMenuAt(index:int):Menu { var menu:Menu = super.getMenuAt(index); menu.itemRenderer = new ClassFactory(renderer.ExtendedMenuItemRenderer); return menu; } package com.istmanagement.vo public class ExtendedMenuBar extends MenuBar } MyMenuBarItem.as file package com.istmanagement.vo Error ll be displayed cannot convert to mx.controls.menuClasses.IMenuBarItemRenderer. ExtendedMenuBar.as package com.vo public class ExtendedMenuBar extends MenuBar MyMenuBArItem.as package com.vo public class MyMenuBArItem extends MenuItemRenderer public function menuImage(str:ArrayCollection):void override protected function measure():void It works for top menu but not working for submenu.
labelField="@label"
iconField="@icon"
showRoot="false"
menuBarItemRenderer="MyMenuBarItem"
dataProvider="{dp}"/>
{
import mx.controls.*;
import mx.controls.Menu;
import mx.controls.MenuBar;
import mx.core.ClassFactory;
{
public function ExtendedMenuBar()
{
super();
override public function getMenuAt(index:int):Menu
{ var menu:Menu = super.getMenuAt(index);
menu.itemRenderer = new ClassFactory(MyMenuBarItem);
return menu;
}
}
}
{
import mx.controls.Image;
import mx.controls.Text;
import mx.controls.menuClasses.MenuBarItem;
public class MyMenuBarItem extends MenuBarItem
{
private var image:Image;
private var text:Text;
public function MyMenuBarItem()
{
}
override protected function commitProperties():void
{
super.commitProperties();
if (data)
{
var icon:String = data.menuIcon;
image = new Image();
image.source = icon;
addChild(image);
}
}
override protected function measure():void
{
super.measure();
if (image)
{
measuredWidth += image.measuredWidth +2;
measuredHeight = Math.max(image.measuredHeight, measuredHeight);
}
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (image)
{
image.x = (20 - image.measuredWidth) / 2;
image.setActualSize(image.measuredWidth, image.measuredHeight);
label.x = 20;
}
}
}
}
{
import mx.controls.*;
import mx.controls.Menu;
import mx.controls.MenuBar;
import mx.controls.menuClasses.MenuBarItem;
import mx.controls.menuClasses.MenuItemRenderer;
import mx.core.ClassFactory;
{
public function ExtendedMenuBar()
{
super();
}
override public function getMenuAt(index:int):Menu
{
var menu:Menu = super.getMenuAt(index);
menu.itemRenderer = new ClassFactory(MyMenuBArItem);
6 return menu;
}
}
}
{
import mx.collections.ArrayCollection;
import mx.controls.Image;
import mx.controls.Menu;
import mx.controls.MenuBar;
import mx.controls.menuClasses.MenuBarItem;
import mx.controls.menuClasses.MenuItemRenderer;
import mx.rpc.events.ResultEvent;
{
private var image:Image;
private var imgtest:Image;
private var text:Text;
public function MyMenuBArItem()
{
}
override protected function commitProperties():void
{
super.commitProperties();
var icon:String = data.menuIcon;
image = new Image();
image.source = icon;
addChild(image);
var str:ArrayCollection= data.children;
menuImage(str);
}
{
var str:ArrayCollection= data.children;
if(str == null)
{
}
else
{
var j:int;
var i:int=0;
for(; i<str.length ; i++)
{
var test:ArrayCollection=str[i].children;
for(j=0;j<test.length;j++)
{
var menuicon:String = test[j].menuIcon ;
imgtest= new Image();
imgtest.source= menuicon;
addChild(imgtest);
}
}
}
}
{
super.measure();
if (image)
{
measuredWidth += image.measuredWidth +2;
measuredHeight = Math.max(image.measuredHeight, measuredHeight);
}
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
if (image)
{
image.x = (20 - image.measuredWidth) / 2;
image.setActualSize(image.measuredWidth, image.measuredHeight);
label.x = 20;
}
}
}
}
- IMenuBarItemRenderer
- Table-Valued User-Defined Functions
- 被教材黑了的 typedef
- C标准预定义宏
- Web 2.0时代RSS的.Net实现
- Windows Azure AppFabric 入门教学系列 (六):Message Buffer之初体验
- IMenuBarItemRenderer
- 解析_Net框架下的XML编程技术
- 一个c程序在执行main函数之前和main之后都做了那些事情啊
- 制作深度WinPE+老毛桃WinPE+Ubuntu启动优盘
- WPF简介
- a
- XAML 语法简介
- ubuntu 中启用Root 账号
- 九宫格 数独 求解 算法 栈实现