- 浏览: 134787 次
- 性别:
- 来自: 苏州
最新评论
-
lanliying:
主窗体报错Multiple markers at this l ...
Flex自定义事件 -
Alex丿:
12年的帖子,难得~。~
Flex编译参数设置
对于自定义组件,我们通常希望能够把它写的通用一些,比如一个自定义的按钮,在A处调用,我们希望它能弹出一个窗口,而在B处调用,我们希望它能够发送请
求到后台服务等。我们希望在调用自定义组件的地方能够定制这些功能,这就需要使用自定义事件把自定义组件和调用程序关联起来。
下面我们就来看一下,如何实现这样的功能,有两种方法:
第一种:
自定义组件myButton的代码:
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> <fx:Script> <![CDATA[ private function onClick(event:MouseEvent):void{ dispatchEvent(new Event("customClick")); } ]]> </fx:Script> <s:Button label="click me" click="onClick(event)" /> </s:Group>
*点击自定义组件中的按钮时,创建一个Event对象,在构造函数中添加自定义的事件类型,然后使用dispatchEvent方法发送。在主窗体中对该组件添加事件监听。
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:components="com.fgj.components.*" creationComplete="init()"> <fx:Script> <![CDATA[ private function init():void{ myBtn.addEventListener("customClick", onClickHandler); } private function onClickHandler(event:Event):void{ trace("123"); } ]]> </fx:Script> <components:MyButton id="myBtn"/> </s:Application>
*主窗体中对该组件监听类型为customClick的事件。通过这种方式就把两个文件关联起来了。
如果要由自定义组件向主窗体传递参数,可以创建一个事件对象,将参数赋值给该对象的属性进行传递。
自定义事件:
public class MyEvent extends Event { public var param:String = ""; public function MyEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } }
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> <fx:Script> <![CDATA[ import com.fgj.events.MyEvent; private function onClick(event:MouseEvent):void{ var e:MyEvent = new MyEvent("passParam"); e.param = "abc"; this.dispatchEvent(e); } ]]> </fx:Script> <fx:Declarations> <!-- Place non-visual elements (e.g., services, value objects) here --> </fx:Declarations> <s:Button label="Click" click="onClick(event)" /> </s:Group>
customBtn.addEventListener("passParam", onClick); private function onClick(event:MyEvent):void{ trace(event.param); } <components:CustomEventComp id="customBtn" />
第二种(标签式监听):
这里需要用到元数据标签,这是一种特殊的标签,它在代码中的作用是像编译器提供如何编译程序的信息。实际上,这些标签并没有被编译进swf文件中,而只是告诉编译器如何生成swf文件。
Flex为事件定义了[Event]元标签,用来声明那些被自定义类派发的事件。
<?xml version="1.0" encoding="utf-8"?> <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" width="400" height="300"> <fx:Metadata> [Event(name="customClick", type="flash.events.Event")] </fx:Metadata> <fx:Script> <![CDATA[ private function onClick(event:MouseEvent):void{ dispatchEvent(new Event("customClick")); } ]]> </fx:Script> <s:Button label="click me" click="onClick(event)" /> </s:Group>
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:components="com.fgj.components.*"> <fx:Script> <![CDATA[ private function onClickHandler(event:Event):void{ trace("123"); } ]]> </fx:Script> <components:MyButton id="myBtn" customClick="onClickHandler(event)" /> </s:Application>
个人比较推荐第二种做法,因为动态添加事件监听器(addEventListener),会使程序的可读性变差。
评论
1 楼
lanliying
2013-08-22
主窗体报错
Multiple markers at this line:
-Line breakpoint: demoMXML.mxml [line: 21]
-1120: Access of undefined property customBtn.
-1120: Access of undefined property onClick.
这行customBtn.addEventListener("passParam",onClick);
要什么解决?
Multiple markers at this line:
-Line breakpoint: demoMXML.mxml [line: 21]
-1120: Access of undefined property customBtn.
-1120: Access of undefined property onClick.
这行customBtn.addEventListener("passParam",onClick);
要什么解决?
发表评论
-
清除flash player缓存-SharedObject
2012-06-18 14:02 2190http://www.macromedia.com/suppo ... -
Flash Builder4.6破解
2012-06-10 13:41 5具体步骤如下:1.到Adobe官网下载FlashBuilder ... -
SharedObject
2012-04-11 16:05 1627共享对象可以简单理解为类似浏览器的cookies,可以将一定 ... -
RollOver和MouseOver的区别
2012-03-20 10:22 1715共同点:都是针对鼠标的进入和进出事件。 不同点: 1、 ... -
wmode参数详解,对flash以及html元素的影响(转载)
2012-03-08 14:16 3643在页面中经常会用到需 ... -
Flex自定义事件时为什么要重载clone()方法(转载)
2012-02-19 17:35 1416声明:转载 以前在学习自定义事件的时候一直不太明白为什 ... -
Datagrid动态添加列
2012-02-19 17:34 1923Datagrid的列是一个数组,动态添加列的方法是创建一个新的 ... -
一个简单的画板
2012-02-17 11:22 1430Flex中画图,有两种方法: 1、直接在canvas中画 ... -
给特效加上缓动效果
2012-02-17 11:21 1021给特效的结束前加上缓动效果,比如模拟篮球落地->弹起-& ... -
BitmapData
2012-02-17 11:21 1882可以使用BitmapData对象加载图片,BitmapData ... -
TitleWindow自定义标题栏
2012-02-17 11:21 1639应用场景: TitleWindow宽度固定,titl ... -
Image拉伸
2012-02-17 11:21 1346应用场景: 当使用Image加载图片或swf文件时, ... -
TextArea设置文本的局部样式
2012-02-16 13:21 3436var tr:TextRange = new TextR ... -
HtmlText中加入超链接
2012-02-16 13:20 1263以下是Label中加入超链接的例子: prote ... -
Flex滤镜
2012-02-16 13:20 1799使用滤镜可以改变文本和控件显示效果,Flex滤镜如下: ... -
Flex字体
2012-02-16 13:20 17651、嵌入字体 嵌入字体会把字体文件编译到应用中,所以 ... -
Flex的Combobox组件
2012-02-16 13:19 85681、显示提示 设置Prompt ... -
Flex中ToolTip的使用
2012-02-15 10:12 27041、为ToolTip加入动画效 ... -
Flex常用特效
2012-02-15 10:12 1057Flex常用特效列表: -
Flex回调函数
2012-02-15 10:12 1224应用场景:父子窗体之间的通信,比如想把弹出窗口中的数据传给弹出 ...
相关推荐
### Flex自定义事件详解 Flex 是一款用于构建和部署跨平台桌面应用与移动应用的开源框架,它基于Adobe Flash Platform。在Flex应用开发过程中,事件处理机制是非常重要的一个环节,而自定义事件则是这一机制中的...
### 二、Flex自定义事件 #### 1. 为什么需要自定义事件 Flex的内置事件(如 MouseEvent 和 Event)可能不足以满足所有交互需求。自定义事件允许开发者创建具有特定含义和数据的事件,以更好地匹配应用的业务逻辑。...
自定义事件是Flex开发中的一个重要概念,允许开发者扩展内置事件系统,以满足特定项目的需要。下面将详细介绍Flex4自定义事件的用法,以及如何在一个完整的项目中导入和运行。 1. **创建自定义事件类** - 首先,...
4. 示例学习:在"flex自定义组件事件DEMO"中,你可以看到如何在自定义组件中创建并派发自定义事件,以及如何在其他地方监听和响应这些事件。通过分析代码,可以了解事件生命周期、事件冒泡和捕获的概念,以及如何在...
这个主题聚焦于“flex自定义控件与事件”,这是一个关键的开发概念,特别是对于那些希望深入理解Flex架构和提升应用用户体验的开发者来说。 自定义控件在Flex开发中扮演着重要角色,它们允许开发者根据项目需求创建...
在Flex中,自定义组件是开发者根据项目需求创建的特殊UI元素,可以扩展和定制标准的MX或Spark组件。本示例着重于一个名为“ImageViewer”的自定义组件,这通常是一个用于展示图像并可能包含缩放、平移等交互功能的...
Flex自定义组件是Adobe Flex框架中的一个重要特性,它允许开发者创建具有特定功能和外观的UI元素,以满足项目中独特的用户界面需求。Flex是一个开源的、基于MXML和ActionScript的开发框架,主要用于构建富互联网应用...
### Flex自定义ToolTip详解 在Flex开发中,`ToolTip`是一种非常实用的界面元素,用于在用户悬停或聚焦某个控件时显示额外的信息。默认情况下,Flex提供了基本的`ToolTip`功能,但有时为了满足特定的设计需求或者...
在本文中,我们将深入探讨如何在Flex...总结来说,自定义Flex加载条是一项涉及组件样式、模板、动画和事件处理的综合工作。通过学习和实践这个示例,你可以掌握如何根据项目需求定制出独特的加载条组件,提升用户体验。
本篇文章将深入探讨如何在Flex环境中自定义实现一个具备展开、收缩功能的多级目录树形结构。 首先,让我们理解`Flex`布局。Flex布局,全称为Flexible Box,是一种用于容器中元素的布局模型,旨在提供更好的灵活性,...
在标题“各种Flex自定义组件”中,我们可以推断这是一个包含多种定制Flex组件的资源集合。这些组件可能包括时间选择器、数据网格(datagrid)、树形视图(tree)和下拉组合框(combox)。每个组件都有其特定的用途和...
Flex 自定义 时间 日历 控件
标题提到的"flex 自定义进度条",指的是利用Flex布局技术来设计一个可定制的进度条组件。Flex布局,全称为Flexible Box布局,是一种在CSS3中引入的布局模型,旨在提供更灵活的盒状模型布局方式,尤其适合在不同屏幕...
标题中的“flex自定义组件介绍”指的是在Adobe Flex框架中创建和使用自定义组件的过程。Flex是一个基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。自定义组件允许开发者根据特定需求扩展Flex...
综上所述,FLEX自定义等待图标资源为开发者提供了丰富的选项,帮助他们提升应用程序的用户体验。通过灵活地使用SWF和GIF资源,开发者可以创造出与应用风格相符且用户体验优良的等待动画。同时,理解和掌握如何在FLEX...
Flex 自定义公共包,可以在项目里直接使用
Flex自定义编辑项目是一种基于Adobe Flex技术的开发工具,它为用户提供了一种类似于Flash IDE的交互体验。这个项目的核心特点是其高度的可定制性,允许开发者进行多种视觉元素的编辑操作,如拖拽、放大、缩小、添加...
总的来说,掌握ActionScript的自定义组件和自定义事件是提升Flash和Flex开发技能的重要一步。通过实践和研究“WinCCALLMine”中的示例,你可以更好地理解这些概念,并将其应用到你的项目中,从而创造出独特且功能...
Flex中的高级自定义组件开发是构建复杂用户界面的关键技术,它允许开发者超越基本组件的限制,以满足特定的业务需求和视觉设计。在创建高级组件时,了解并掌握一些核心方法的重写至关重要,这些方法涉及到组件的生命...
"flex自定义文本编辑器"是一个这样的示例,它展示了如何利用Flex4框架构建一个具备特定功能的文本编辑工具,同时集成了自定义的拾色器功能。下面我们将详细探讨这个项目的相关知识点。 首先,我们关注的是`Text...