1、define custom event
package com.amaxgs.framework.events
{
import flash.events.Event;
public class HandleObjectEvent extends Event
{
public static const CLOSE_TYPE:String = "CloseObjectEvent";
public static const UPDATE_TYPE:String = "UpdateObjectEvent";
public static const VIEW_TYPE:String = "ViewObjectEvent";
public var obj:Object;
public function HandleObjectEvent(obj:Object,type:String,bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type,bubbles,cancelable);
this.obj=obj;
}
override public function clone():Event {
return new HandleObjectEvent(obj, type, bubbles, cancelable);
}
}
}
2、dispatch event
<?xml version="1.0" encoding="utf-8"?>
<s:MXAdvancedDataGridItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
focusEnabled="true">
<fx:Script>
<![CDATA[
import com.amaxgs.framework.events.HandleObjectEvent;
import com.amaxgs.internals.view.currentTask.ActionItemEditPanel;
import com.amaxgs.internals.view.currentTask.QuestionEditPanel;
import com.amaxgs.internals.view.currentTask.RiskEditPanel;
import com.amaxgs.internals.vo.ActionItemVo;
import com.amaxgs.internals.vo.QuestionVo;
import com.amaxgs.internals.vo.RiskVo;
import mx.core.FlexGlobals;
import mx.managers.PopUpManager;
import org.flintparticles.common.actions.Action;
private function clickCloseHandler(event:MouseEvent):void
{
var obj:Object=this.data;
this.dispatchEvent(new HandleObjectEvent(obj,HandleObjectEvent.CLOSE_TYPE,true));
}
private function clickUpdateHandler(event:MouseEvent):void
{
var obj:Object=this.data;
this.dispatchEvent(new HandleObjectEvent(obj,HandleObjectEvent.UPDATE_TYPE,true));
}
private function clickViewHandler(event:MouseEvent):void
{
var obj:Object=this.data;
this.dispatchEvent(new HandleObjectEvent(obj,HandleObjectEvent.VIEW_TYPE,true));
}
]]>
</fx:Script>
<mx:LinkButton textDecoration="underline" label="Close" click="clickCloseHandler(event)" x="2"/>
<mx:LinkButton textDecoration="underline" label="Update" click="clickUpdateHandler(event)" x="47"/>
<mx:LinkButton textDecoration="underline" label="View" click="clickViewHandler(event)" x="102"/>
</s:MXAdvancedDataGridItemRenderer>
3、Add event listener
this.addEventListener(HandleObjectEvent.CLOSE_TYPE, closeObjectHandler);
this.addEventListener(HandleObjectEvent.UPDATE_TYPE, updateObjectHandler);
分享到:
相关推荐
在Flex 4中,数据绑定是一项强大的特性,它允许开发者创建动态、响应式的用户界面,无需编写大量的事件处理代码。本教程将深入讲解如何在Flex 4中对自定义类进行数据绑定,通过一个实际的MXML文件和AS文件示例来阐述...
public static const MY_CUSTOM_EVENT:String = "myCustomEvent"; ``` 3. **派发自定义事件** - 在需要触发事件的地方,使用`dispatchEvent()`方法派发自定义事件。确保事件对象已经被正确实例化并设置了必要的...
在Flex4开发中,`s:DataGrid`是Adobe Flex组件库中的一个关键元素,用于显示数据集中的信息,通常以表格形式展示。这个组件在处理大量结构化数据时非常有用,用户可以通过滚动和排序来浏览数据。在给定的标题“FLEX4...
Flex4是Adobe开发的一种用于构建富互联网应用程序(RIA)的框架,它基于ActionScript和Flash Player或Adobe AIR运行时环境。在Flex4中,MXML是一种声明式编程语言,主要用于构建用户界面,与ActionScript的面向对象...
首先,我们要了解Flex中的Event.MENU_SHOW事件,这是在用户打开右键菜单时触发的事件。为了监听这个事件,我们需要在Tree组件上添加事件监听器。代码示例如下: ```actionscript tree.addEventListener(Event.MENU_...
Flex的内置事件(如 MouseEvent 和 Event)可能不足以满足所有交互需求。自定义事件允许开发者创建具有特定含义和数据的事件,以更好地匹配应用的业务逻辑。 #### 2. 创建自定义事件类 自定义事件通常继承自Event...
private function onInit(event:FlexEvent):void { trace("CustomPanel[ Init ]"); // 在这里访问和使用o对象,因为初始化已完成 // ... } ``` 另一种方法是确保在`createChildren()`之前对`o`对象进行赋值,...
在事件处理函数中,我们可以设置`event.preventDefault()`来阻止默认菜单的显示。这样,当用户尝试打开右键菜单时,将不会有任何操作发生。 接下来,"自定义"右键菜单部分涉及到创建和添加自定义菜单项。在Flex中,...
在本文中,我们将深入探讨如何在Flex应用中实现右键点击功能,并且结合"flex-right-click.rar_flex_flex right"这一标题,我们可以推断这是一个关于在Flex项目中添加右键菜单并支持增删操作的示例。Flex是一种基于...
contextMenu.customItems.push(drawItem); this.contextMenu = contextMenu; ``` 这里我们创建了一个名为"开始画画"的菜单项,并添加了一个事件监听器,当用户选择这个菜单项时,会触发`onDrawSelect`函数。 接...
4. 自定义右键菜单(ContextMenu类):Flex提供了`ContextMenu`类,我们可以使用它来创建自定义的右键菜单。首先创建一个`ContextMenu`实例,然后添加`ContextMenuItem`对象作为菜单项。每个`ContextMenuItem`可以有...
在本文中,我们将深入探讨如何使用Flex框架来创建和定制各种风格的按钮。Flex是一种基于MXML和ActionScript的开源框架,它允许开发者构建富互联网应用程序(RIA)。Flex中的按钮组件是用户界面(UI)设计中不可或缺...
private function handleChange(event:Event):void { if (selected) { // 缩小容器的代码 } else { // 恢复容器的代码 } } } ``` 然后在MXML中使用这个自定义的CheckBox: ```xml <local:CustomCheckBox ...
4. **动态更新菜单**: 如果需要根据应用状态或用户操作动态修改菜单,可以随时调用`ContextMenu`的`removeChild()`、`addChild()`方法或直接设置`items`属性。 总结来说,通过监听和处理鼠标事件,结合`...
4. 示例学习:在"flex自定义组件事件DEMO"中,你可以看到如何在自定义组件中创建并派发自定义事件,以及如何在其他地方监听和响应这些事件。通过分析代码,可以了解事件生命周期、事件冒泡和捕获的概念,以及如何在...
4. **数据解码与转换** 如果加载的是非二进制数据,如XML或JSON,加载完成后可能需要解析和转换数据。你可以使用`XML`或`JSON`类来处理这些数据。 5. **性能优化** 自定义加载器还可以考虑性能优化,例如批量加载...
而在Flex 4(Spark组件库)中,更推荐使用ActionScript皮肤。例如,我们可能会有两个皮肤文件,`defaultSkin.css`和`customSkin.css`,分别定义了默认皮肤和自定义皮肤的样式: ```css /* defaultSkin.css */ @...
customMenu.y = event.stageY; ``` 这种方法允许你完全定制菜单的布局、样式和交互,但需要注意的是,自定义菜单需要自己管理可见性和隐藏逻辑。 无论是选择系统右键菜单的扩展还是完全自定义,关键在于理解...
9. **自定义组件(Custom Components)**:Flex允许开发者创建自己的组件,通过继承现有的UIComponent或Canvas类,然后添加自定义的样式和行为,可以创建出独特的特效组件。 10. **事件处理(Event Handling)**:...
4. **实现自定义菜单**:在Flex代码中,创建`Menu`对象,设置`labelField`属性,以及添加事件监听器来处理菜单项的选择。例如,`showMenu`方法中,创建并显示`Menu`,并为`MENU_HIDE`和`CHANGE`事件添加处理函数。 ...