`
unbounder
  • 浏览: 174760 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

重写mxml组件

    博客分类:
  • flex
阅读更多
遇到的问题挺无聊的,使用ToggleButtonBar组件时,application捕捉不到MouseEvent.CLICK事件。看了下源码,问题出在这里
ToggleButtonBar.as
    /**
     *  @private
     */
    override protected function clickHandler(event:MouseEvent):void
    {
        var index:int = getChildIndex(Button(event.currentTarget));

        // 143958
        _selectedIndex = index;

        if (_toggleOnClick && index == selectedIndex)
        {
        	selectedIndex = -1;
            hiliteSelectedNavItem(-1);
        }
        else
            hiliteSelectedNavItem(index);

        super.clickHandler(event);
    }

内部已经捕捉了这个事件,并没有抛到上层来,没办法,只能尝试重组这个组件。

以下为用as方式重写这个组件(个人推荐)
import flash.events.MouseEvent;
	
	import mx.controls.ToggleButtonBar;

	public class ToggleButtonBar1 extends ToggleButtonBar
	{
		public function ToggleButtonBar1()
		{
			super();
		}
		
		override protected function clickHandler(event:MouseEvent):void
	    {
			super.clickHandler(event);
			dispatchEvent(event);
    	}
	}

以下为用mxml方式重写这个组件
<?xml version="1.0" encoding="utf-8"?>
<mx:ToggleButtonBar xmlns:mx="http://www.adobe.com/2006/mxml" >
	<mx:Script>
		<![CDATA[
			override protected function clickHandler(event:MouseEvent):void
		    {
		        super.clickHandler(event);
		        dispatchEvent(event);
		    }
		]]>
	</mx:Script>
	
</mx:ToggleButtonBar>

解决

代码、思路都没什么好说的,纯粹是第一次做记录一下。
0
0
分享到:
评论

相关推荐

    flex 重写组件

    重写Flex组件可以通过MXML和ActionScript两种方式进行: 1. **MXML**:适用于创建简单的组件,特别是需要直观布局和快速构建的场景。MXML的编译速度虽然比ActionScript稍慢,但它使得组件的创建更加直观。 2. **...

    flex组件重写

    本文将探讨Flex组件重写的必要性、考虑因素、以及AS和MXML方式的选用规则,并提供AS方式重写组件的一般步骤。 一、为什么要重写组件 1. 扩展功能:当Flex已有的组件无法满足特定业务需求时,我们可以通过继承现有...

    Flex组建重写

    Flex提供了两种重写组件的方式:MXML和AS。 1. **MXML**:更适合创建简单的组件,因为可以直接在MXML中定义布局和样式,易于理解和维护。 - 适用场景:当组件的功能比较简单,无需复杂逻辑处理时。 2. **AS...

    Flex重写搜索框

    - 创建一个新的MXML组件类,继承自TextInput。 - 在组件类中添加图片资源,并设计布局,可能包括设置图片位置、大小以及与文本输入框的相对位置。 - 定义新的样式属性,如图片颜色、边框样式等,以便于在不同场景...

    ActionScript的自定义组件及自定义事件例子

    5. **使用组件**:在MXML或AS3代码中实例化并使用你的自定义组件。 接下来,我们讨论自定义事件。在ActionScript中,事件是程序间通信的一种方式,用于响应用户操作或其他组件的行为。自定义事件允许你创建特定于...

    ACTIONSCRIPT 3.0 组件中文版

    6. **自定义组件**:如果你需要满足特殊需求,可以通过继承现有组件并重写或扩展其功能来创建自定义组件。这允许你构建符合项目需求的个性化组件库。 7. **优化和性能**:了解如何有效地使用组件以优化性能也至关...

    Flex自定义组件和事件

    - **绘制组件**:在自定义组件中,通常需要重写`drawRect()`或`updateDisplayList()`方法来绘制组件的外观。 - **添加属性和方法**:根据需求添加新的属性和方法,以实现特定的功能。 - **布局管理**:如果组件...

    flex2_createextendcomponents.zip

    3. **MXML支持**:如果你希望在MXML中使用这个组件,需要定义一个对应的MXML组件标签。这通常通过在AS3类上添加 `[Component]` 元数据完成。 ```as3 [Component] public class CustomButton extends Button { // ....

    Flex3组件和框架的生命周期

    通过重写`initialize()`方法来进行组件的深度初始化。这种方法允许在组件添加到显示列表后执行更精细的控制。 **使用标识变量** 标识变量可以帮助追踪组件的生命周期状态。这对于处理特定生命周期阶段的逻辑非常...

    (十八)Flex4_自定义ActionScript组件

    同时,如果需要处理组件的大小和位置,可以重写`measure()`和`updateDisplayList()`方法来实现自定义布局。 3. **属性和事件**:为了增加组件的可配置性,可以添加自定义属性。通过`[Inspectable]`元数据标签,可以...

    flex/flash自定义组件(搜索栏)

    在Flex中,组件的逻辑通常由ActionScript类实现,这些类扩展了基类(如UIComponent),并重写其方法来实现自定义行为。 3. **搜索栏组件**: - **基本结构**:搜索栏组件通常包括一个TextInput用于输入关键词,一...

    flex中给图片或任意组件着色的方法

    首先,继承原生的`Image`或任何其他组件,然后重写`updateDisplayList()`方法,在这里可以添加颜色调整的代码。例如: ```mxml &lt;mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"&gt; &lt;![CDATA[ override ...

    flex3组件和框架的生命周期

    Flex编译器(MXMLC)将MXML和ActionScript源代码转换为字节码,从而生成应用程序的主要类文件。在此阶段,还负责创建`SystemManager`实例,这是管理整个应用程序生命周期的关键组件。 **初始化阶段** 初始化阶段...

    自定义的Alert-Flex4

    - 首先,你需要创建一个新的MXML组件,继承自`mx.controls.Alert`或`spark.components.DialogWindow`,后者在Spark组件模型中更为灵活。 - 在MXML文件中,你可以定义组件的布局、外观以及包含的子组件,比如按钮、...

    Flex 时间输入框 TimeInputEx

    4. **在MXML中使用组件**:在MXML文件中声明和配置组件实例,将它们加入到应用程序的布局中。 在实际应用中,TimeInputEx组件可能会与 Flex 的DateFormatter 和 DateUtil 类结合使用,以确保时间的正确格式化和解析...

    Creating and Extending Flex 2 Components

    - **使用Flex 2组件**是在MXML或ActionScript中声明和实例化组件的过程。MXML是一种XML格式的标记语言,用于定义Flex应用程序的用户界面。 - **实例化组件**可以通过在MXML中使用`&lt;mx:YourComponent&gt;`标签或者在...

    flex 自定义控件、事件

    5. **MXML使用**:MXML是一种声明式语言,用于描述Flex界面的布局和组件。在MXML文件中,你可以像使用内置组件一样轻松地使用自定义控件。只需在标签库中引入自定义组件,然后在MXML布局中添加它。 6. **事件监听**...

    flex4自适应高度的TitleWindow

    这是一个flex4的项目,可以下载下来单独运行,项目中是一个自定义的TitleWindow,TitleWindow中存放了一个dataGrid,它可以根据...此组件使用mxml定义,重写了组件updateDisplayList的方法,希望对大家有所帮助。

    flex带时分秒控件,项目实现

    在MXML中,我们可以声明组件并为其设置属性,而在ActionScript中,我们可以编写组件的行为和扩展功能。对于这个项目,我们可能需要在ActionScript中创建一个新类,继承自DateField,并添加额外的时间选择功能。 1. ...

    自定义Button源码

    例如,可以重写`createChildren()`方法来添加自定义的子组件或图形元素。 3. **添加事件处理**:如果需要自定义按钮的点击行为,可以覆盖`click()`方法,或者在AS类中添加`addEventListener()`来监听并处理自定义...

Global site tag (gtag.js) - Google Analytics