`

Flex中无边框透明背景MenuBar实现.

    博客分类:
  • Flex
阅读更多

打开FLEX帮助搜了半天,只有bordercolor属性,没有borderAlpha属性, 不想要那个该死的边框,怎么半呢方法在这里:(原作者只针对FLEX2,经测试,在FLEX3中一样是OK的~) 来自:http://www.cnblogs.com/taobataoma/archive/2008/01/22/1048332.html

 
在Flex中,大家是否发现MenuBar的背景与边框是不能去掉的,其实这是因为MenuBar的缺省的backgroundSkin属性使用的是mx.skins.halo.MenuBarBackgroundSkin,不管您怎么设置,该skin都会绘制背景以及边框,所以我们不能去掉MenuBar的边框。

既然这样的话,要去掉边框,只需要不使用该Skin就可以,所以我们自定义了一个Skin:MenuBarNoBorderFillSkin,该Skin什么都不做,只是用来替代MenuBarBackgroundSkin而已。

 

另外,使用了MenuBarNoBorderFillSkin以后,MenuBar的菜单栏不再根据鼠标移动显示不同的选择状态了,所以我们又做了个MenuBarActiveSkin类来响应鼠标,然后将MenuBar的itemDownSkin和itemOverSkin属性MenuBarActiveSkin,这样菜单栏就可以显示不同的状态。

 

 完整代码见下:

MenuBarWidthNoBorder.mxml

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
    <mx:Script>
    <![CDATA[
            import com.eshangrao.skin.MenuBarNoBorderFillSkin;
            import com.eshangrao.skin.MenuBarActiveSkin;            
            [Bindable]
            public var menubarXML:XML =
                <menu>
                    <menuitem label="System" >
                        <menuitem label="File"/>
                        <menuitem label="Save"/>
                        <menuitem type="separator"/>   
                        <menuitem label="Exit"/>
                    </menuitem>
                    <menuitem label="Edit">
                        <menuitem label="Cut"/>
                        <menuitem label="Parste"/>
                        <menuitem label="Delete"/>                        
                    </menuitem>
                    <menuitem label="Navigate">
                        <menuitem label="Go Into" state="killTermState"/>
                        <menuitem label="Go To"/>
                    </menuitem>
                </menu>;   
        ]]>
    </mx:Script>
    <mx:ApplicationControlBar width="100%">
        <mx:MenuBar labelField="@label" dataProvider="{menubarXML.menuitem}" width="100%"
            backgroundSkin="com.eshangrao.skin.MenuBarNoBorderFillSkin"
            itemDownSkin="com.eshangrao.skin.MenuBarActiveSkin"
            itemOverSkin="com.eshangrao.skin.MenuBarActiveSkin"
        />
    </mx:ApplicationControlBar>
</mx:Application>

 

 

MenuBarActiveSkin.as

 

package com.eshangrao.skin
{
    import mx.skins.ProgrammaticSkin;
    import flash.display.Graphics;
    import mx.utils.ColorUtil;

    public class MenuBarActiveSkin extends ProgrammaticSkin
    {
        public function MenuBarActiveSkin()
        {
            super();
        }
        override protected function updateDisplayList(w:Number, h:Number):void
        {
            var backgroundAlpha:Number = getStyle("backgroundAlpha");
            var rollOverColor:uint=getStyle("rollOverColor");
            
            graphics.clear();
            drawRoundRect(0,0,w,h,5,rollOverColor,backgroundAlpha);
            
        }
    }
}

 

 

MenuBarNoBorderFillSkin.as

 

package com.eshangrao.skin
{
    import mx.skins.ProgrammaticSkin;
    import flash.display.Graphics;

    public class MenuBarNoBorderFillSkin extends ProgrammaticSkin
    {
        public function MenuBarNoBorderFillSkin()
        {
            super();
        }
    }
}

 

分享到:
评论

相关推荐

    Flex MenuBar小例子

    FLex MenuBar的小例子,可以实现下拉菜单的效果,可直接拷贝使用

    flex动态菜单(Menubar)

    本篇将详细讲解如何利用Flex中的Menubar组件和XML配置来实现动态菜单,并在itemClick事件中处理次级子菜单。 1. **Menubar组件**:Flex的Menubar组件是一个顶部菜单条,它包含一组下拉式菜单项。每个菜单项都可以...

    Flex MenuBar从数据库中动态加载图片

    在Flex中,可以通过MXML或ActionScript来创建和配置`MenuBar`。 要动态加载图片,我们首先需要一个数据源,这通常来自于数据库。数据库可以存储图片的URL或者Base64编码的图片数据。这里我们假设已经有一个服务端...

    Developing Flex Applications 910p dda_doc88_cracker.zip

    1. a book Developing Flex Applications 2. a web page viewer for doc88 ebt 3. a DDA downloader for doc88.com CONTENTS PART I: Presenting Flex CHAPTER 1: Introducing Flex. . . . . . . . . . . . . . ...

    用工具栏实现MenuBar简单实用.rar

    在本文中,我们将深入探讨如何使用工具栏(ToolBar)来实现MenuBar,这是一个在软件开发中常见且实用的技术,尤其在Windows或跨平台GUI应用程序中。我们将会通过分析`MyToolBar.cpp`和`MyToolBar.h`这两个文件来了解...

    vue_menubar.rar

    本案例“vue_menubar.rar”是基于Vue.js实现的一个模仿饿了么的横向导航栏,适用于快速构建具有类似功能的项目。MockJS则是一个用于前端开发中模拟数据的工具,它可以模拟各种接口返回的数据,使得在没有后端配合...

    窗口都增加一个Menubar.docx

    文档标题提到的是“窗口都增加一个Menubar.docx”,这显然与软件开发和用户界面设计有关,特别是针对Mac OS X操作系统。Menubar是操作系统界面的一个关键元素,通常位于屏幕顶部,提供应用程序的主要功能和设置选项...

    flex 竖排Menu

    本主题将深入探讨如何实现一个“竖排Menu”在Flex中的应用,以此来满足非传统布局的需求。 标题“flex 竖排Menu”指的是在Flex环境中创建一个垂直排列的菜单条。默认情况下,Flex的MenuBar组件是水平布局的,但通过...

    menuBar.7z菜单栏

    在IT行业中,"menuBar.7z菜单栏"这个标题暗示了我们正在处理一个与图形用户界面(GUI)设计相关的项目,特别是涉及到菜单栏的实现。这个项目可能使用了QT库,因为"QT"是提供的标签之一。QT是一个广泛使用的跨平台...

    flexbuilder3training.rar

    6. **MenuBar.zip** MenuBar组件用于创建应用程序的菜单栏,常见的如File、Edit、View等菜单项。这个例子将展示如何创建和定制菜单项,设置快捷键,以及响应用户的菜单选择。 这些实例覆盖了FlexBuilder3的基本...

    Flex考试题.docx

    根据提供的文档信息,我们可以...综上所述,这些知识点涵盖了RIA的基本概念、Flex程序的组成与特性、Flex中的验证器、组件使用以及动画和导航的实现等方面。对于学习Flex开发的人来说,掌握这些内容是非常重要的基础。

    flex-menu.rar_Flex 4_Menu_flex_flex Menu_flex 菜单

    在这个"flex-menu.rar"压缩包中,可能包含了实现上述功能的源代码示例或者预编译的SWF文件,以便开发者可以直接查看和学习如何在实际项目中应用Flex 4的菜单组件。 通过深入研究这些示例,开发者可以学习到如何定制...

    Flex创建菜单栏

    menuBar.dataProvider = new XMLListCollection(menuData.menu); ``` 接下来,我们要创建`MenuBar`实例并将其添加到舞台上: ```actionscript var menuBar:MenuBar = new MenuBar(); this.addElement(menuBar); ``...

    IOS应用源码之【框架】别具风格的menubar与tabbar.rar

    在iOS中,系统的UINavigationBar是默认的导航栏实现,但有时为了追求独特的用户界面设计或品牌一致性,开发者会自定义menubar。这份源码可能包含如何使用自定义视图、动画效果或者扩展系统框架来创建具有独特风格的...

    menubar_rebar_rightclick

    标题“menubar_rebar_rightclick”以及描述“menubar rebar rightclick”提及的是Windows应用程序开发中的特定功能,涉及到菜单栏(menubar)、Rebar控件以及右键点击事件处理。在Windows API编程中,这些元素是构建...

    Flex4 滑动菜单案例

    在这个"Flex4 滑动菜单案例"中,我们将探讨如何利用Flex4的组件和特效来实现一个动态的滑动菜单。 滑动菜单是用户界面设计中的常见元素,它可以提供更高效的导航,特别是在内容丰富的应用中。在Flex4中,我们可以...

    flex自定义多级系统菜单

    这个“flex自定义多级系统菜单”的话题,主要是关于如何在Flex中通过XML配置实现动态、多层次的菜单结构。 在Flex中,菜单通常由`Menu`或`MenuBar`组件来创建。然而,为了实现自定义的多级菜单,我们需要更深入地...

    无边框窗口代码详解

    通过本文档提供的代码,我们可以了解到如何利用JavaScript和HTML框架实现无边框窗口的创建及其基本交互控制。此技术可以应用于各种场景,如广告弹窗、在线聊天窗口等。然而,考虑到用户体验和浏览器安全性等因素,...

    matlab开发-MenuBar.zip

    在MATLAB中,`MenuBar`是创建图形用户界面(GUI)的重要组成部分,它允许用户通过菜单项执行各种操作。在本教程中,我们将深入探讨如何使用MATLAB进行`MenuBar`的开发,以及如何构建功能丰富的GUI应用。 1. **创建...

Global site tag (gtag.js) - Google Analytics