- 浏览: 136219 次
- 性别:
- 来自: 北京
文章分类
最新评论
UIComponent.as
//--------------------------------------
// Lifecycle events
//--------------------------------------
[Event(name="add", type="mx.events.FlexEvent")]
在调用addChild()或addChildAt()将组件作为content child添加到某个container后派发。
而调用rawChildren.addChild()或rawChildren.addChildAt()将组件作为noncontent child添加到某个container时不会派发。
******
[Event(name="creationComplete", type="mx.events.FlexEvent")]
在组件完成构建,属性处理,测量,布局以及绘制后派发。
此时,组件会依据visible的设置来显示或不显示,即使组件已绘制完毕。
******
[Event(name="updateComplete", type="mx.events.FlexEvent")]
在组件的commitProperties(), measure()</code>, 和updateDisplayList()方法执行完毕后派发。
这是在组件显示前调整组件的最后机会。所有的属性都已完成提交并且组件已经完成测量和布局。
******
[Event(name="hide", type="mx.events.FlexEvent")]
在组件的状态由可见变为不可见时派发。
******
[Event(name="initialize", type="mx.events.FlexEvent")]
在组件完成构建和所有的初始化属性设置后。
初始化阶段之后,会完成属性的处理、组件的测量、布局和绘制,随即派发creationComplete事件。
******
[Event(name="move", type="mx.events.MoveEvent")]
在组件移动后派发。
移动是指需要LayoutManager来改变组件的x和y属性,如:
直接改变x和y,调用move()方法,或改变下列属性:
* <ul>
* <li><code>minWidth</code></li>
* <li><code>minHeight</code></li>
* <li><code>maxWidth</code></li>
* <li><code>maxHeight</code></li>
* <li><code>explicitWidth</code></li>
* <li><code>explicitHeight</code></li>
* </ul>
当调用move()方法时,move事件在move() return前派发。而在其他所有情况下,move事件在属性修改后派发。
******
[Event(name="preinitialize", type="mx.events.FlexEvent")]
在组件的初始化序列的最开始派发。在本事件被派发时,组件处于非常粗略/原始的状态。
许多组件,如Button control,创建internal child 组件来实现功能。例如,Button control创建一个内部的UITextField 组件来代替其label 文本。
当Flex派发preinitialize事件时,其children,包括internal children尚未被创建。
******
[Event(name="remove", type="mx.events.FlexEvent")]
对应add事件。
******
[Event(name="resize", type="mx.events.ResizeEvent")]
在组件被resized后派发。
可以通过设置组件的width和height,调用setActualSize()方法,或设置下列属性使得LayoutManager需要更改width和height :
* <ul>
* <li><code>minWidth</code></li>
* <li><code>minHeight</code></li>
* <li><code>maxWidth</code></li>
* <li><code>maxHeight</code></li>
* <li><code>explicitWidth</code></li>
* <li><code>explicitHeight</code></li>
* </
ul>
resize事件在属性更改后派发。
******
[Event(name="show", type="mx.events.FlexEvent")]
在组件的状态从invisible改为visible时。
******
//--------------------------------------
// Mouse events
//--------------------------------------
[Event(name="mouseDownOutside", type="mx.events.FlexMouseEvent")]
用PopupManager打开的组件,当鼠标在组件外部点击时派发。
******
[Event(name="mouseWheelOutside", type="mx.events.FlexMouseEvent")]
用PopupManager打开的组件,当鼠标滚轮在组件外部滚动时派发。
******
//--------------------------------------
// Validation events
//--------------------------------------
[Event(name="valueCommit", type="mx.events.FlexEvent")]
当值被程序或者用户交互方式修改后。
由于程序方式修改值会触发本事件,请确保在任何valueCommit事件的处理方法中不会改变某个值从而触发另一个valueCommit事件。
例如,不要在一个valueCommit事件处理方法中修改一个control的dataProvide的属性。
******
[Event(name="invalid", type="mx.events.FlexEvent")]
当组件被Validator监视并且验证失败时派发。
******
[Event(name="valid", type="mx.events.FlexEvent")]
当组件被Validator监视并且验证成功时派发。
******
//--------------------------------------
// Drag-and-drop events
//--------------------------------------
[Event(name="dragEnter", type="mx.events.DragEvent")]
在拖放操作中,当鼠标移上组件时由该组件派发。
在Flash Player中运行的程序,在鼠标移上任何组件时会派发本事件多次。
而在AIR中运行的程序,本事件只派发一次。
若想成为合法的释放目标,需要定义方法来接收本事件。在处理方法中,可以改变释放目标的表现来提供本组件是否接收释放的可视化反馈。
例如,可以给目标组件绘制边框,或者将组件设为焦点。
如果想接受拖放,必须调用DragManager.acceptDragDrop()方法。如果不调用该方法,将不会获得其他任何拖放事件。
在Flash Player中,action属性的值总是DragManager.MOVE,即使是在复制。
这是因为dragEnter事件发生在control识别Control键按下之前。
dragOver事件的action属性确实有值来表明拖放操作的类型。可以通过调用DragManager.showFeedback()来改变其值。
在AIR中,action属性的默认值是DragManager.COPY。
由于Tree的数据构成方式,Tree在处理拖和放时不同于其他的list-based 组件。
对于Tree组件,dragDrop事件的处理方法在同一个Tree中移动或者复制数据,或者向另一个Tree中复制数据时,只执行一个操作。
如果从一个Tree中通过拖放来移动数据到另一个Tree中,dragComplete事件的处理方法会执行这个操作 -- 添加数据到目标Tree,并删除源Tree 的数据, 而不是dragDrop事件的处理方法。
这是必须的,因为要重新为被移动的数据设定parent,Flex必须先从原来的Tree中删除它。
参加mx.managers.DragManager 。
******
[Event(name="dragOver", type="mx.events.DragEvent")]
在拖放操作中,当鼠标移上某组件时由该组件派发。
在Flash Player中,当拖动操作的目标组件是合法的释放目标时派发本事件。
在AIR中,拖动操作的目标组件是任意组件都会触发,即使目标组件不是合法的释放目标。
在处理方法中,可以改变释放目标的表现来提供本组件是否接收释放的可视化反馈。
例如,可以给目标组件绘制边框,或者将组件设为焦点。
你应该处理事件以便在释放之前执行其他逻辑判断,如释放数据到释放目标的其他区域,读取键盘输入来决定本次操作是move还是copy,或根据拖放动作的类型来反馈不同的可视化效果。
你也可以通过DragManager.showFeedback()来改变拖动操作。action属性的默认值是DragManager.MOVE。
参加mx.managers.DragManager 。
******
[Event(name="dragExit", type="mx.events.DragEvent")]
当在组件外部拖动但并没有释放数据到本组件时派发。
可以通过本事件来恢复到未拖入时的普通状态。
******
[Event(name="dragDrop", type="mx.events.DragEvent")]
当用户在释放目标上释放鼠标时派发。
通过本事件的处理方法可以添加被拖动的数据到释放目标。
在从一个Tree拖动数据到另一个Tree时,如果在处理方法中调用Event.preventDefault(),会阻止释放。
******
[Event(name="dragComplete", type="mx.events.DragEvent")]
在拖动动作完成时由drag initiator(拖动数据的源组件)派发,不管释放是否成功。
可以通过本事件来执行对本次拖放动作的最终清理操作。例如,如果从一个List组件拖放项目到另一个List,可以删除源数据。
如果在Tree组件之间拖放时,在dragComplete事件的处理方法中调用Event.preventDefault(),会阻止释放。
******
[Event(name="dragStart", type="mx.events.DragEvent")]
由源组件在拖放开始时派发。
本事件在list-based组件内部使用。在拖放过程中不需要处理本事件。
如果想要控制拖放操作的开始,可以用mouseDown或者mouseOver事件。
******
//--------------------------------------
// Effect events
//--------------------------------------
[Event(name="effectStart", type="mx.events.EffectEvent")]
在效果开始前派发。
在本事件被派发前,效果不会改变任何可视化元素。
******
[Event(name="effectStop", type="mx.events.EffectEvent")]
只有在调用stop()方法停止效果后派发。
效果随后在完成时派发EFFECT_END事件。EFFECT_STOP事件的目的是让事件监听得知事件尚未完成就被终止,而不是自然的结束或者调用end()方法结束。
******
[Event(name="effectEnd", type="mx.events.EffectEvent")]
在效果结束时派发。
在本事件被派发之前,效果做了最后的一些视觉改变,但还没有渲染到屏幕上。
因此,你可能需要调用callLater()方法来延迟后续操作,直到所有的视觉修改都被渲染到屏幕上。
******
//--------------------------------------
// State events
//--------------------------------------
[Event(name="currentStateChanging", type="mx.events.StateChangeEvent")]
在修改currentState属性的值之后,但是在视觉状态改变之前派发。
本事件只有在派发者有一个或多个相关监听时才被派发。
******
[Event(name="currentStateChange", type="mx.events.StateChangeEvent")]
在视觉状态改变之后派发。
本事件只有在派发者有一个或多个相关监听时才被派发。
******
[Event(name="enterState", type="mx.events.FlexEvent")]
在组件进入一个视觉状态后派发。
本事件只有在派发者有一个或多个相关监听时才被派发。
******
[Event(name="exitState", type="mx.events.FlexEvent")]
在组件退出一个视觉状态前派发。
本事件只有在派发者有一个或多个相关监听时才被派发。
******
//--------------------------------------
// Tooltip events
//--------------------------------------
[Event(name="toolTipCreate", type="mx.events.ToolTipEvent")]
在将要创建ToolTip时派发。
如果你创建了自己的IToolTip对象,并在toolTip属性中放置了引用,ToolTipManager 会显示你自定义的ToolTip。否则,ToolTipManager会创建ToolTipManager.toolTipClass的实例来显示。
ToolTip事件的序列是:toolTipStart,toolTipCreate,toolTipShow,toolTipShown,toolTipHide和toolTipEnd。
******
[Event(name="toolTipEnd", type="mx.events.ToolTipEvent")]
当ToolTip被隐藏并很快会被抛弃时派发。
如果用ToolTipManager.hideEffect定义了效果,那么本事件会在效果停止播放后派发。
******
[Event(name="toolTipHide", type="mx.events.ToolTipEvent")]
在ToolTip将要被隐藏时派发。
如果用ToolTipManager.hideEffect定义了效果,那么本事件会在效果开始播放前派发。
******
[Event(name="toolTipShow", type="mx.events.ToolTipEvent")]
在ToolTip将要显示时派发。
如果用ToolTipManager.showEffect定义了效果,那么本事件会在效果开始播放前派发。
你可以在ToolTip出现之前用本事件进行修改。
******
[Event(name="toolTipShown", type="mx.events.ToolTipEvent")]
在ToolTip显示后派发。
如果用ToolTipManager.showEffect定义了效果,那么本事件会在效果停止播放后派发。
******
[Event(name="toolTipStart", type="mx.events.ToolTipEvent")]
当鼠标移上某个已经定义了toolTip属性的组件时立刻派发。
******
发表评论
-
Flex从swf中加载资源和类
2013-12-10 09:37 759需要为直播播放器做几个新的样式,想将每个样式的布局XML和 ... -
swf加载swf的一些问题
2013-03-20 17:31 7131,swfParent 加载 swfChild,如果有交互, ... -
NetStream appendBytes 一点经验
2013-03-20 16:25 2601最近在做基于 NetStream ... -
【译】HTML5还需要什么才能击败Flash(part 2)
2012-04-01 17:53 0What else does HTML5 need to ... -
【译】HTML5还需要什么才能击败Flash(part 1)
2012-04-01 16:36 1084What else does HTML5 need to de ... -
AS 函数作用域、函数闭包、限界方法
2012-03-30 10:21 1469作用域链(scope chain): 任何时候函数开始 ... -
在AS3中自定义全局方法
2012-03-29 11:17 947http://en.flash-ripper.com/2007 ... -
Flex Class object(类对象)构成、traits和prototype
2012-03-29 10:59 1560先贴张图: 每个矩形代表一个对象。CA代表class ... -
使用flex sdk3.6的asdoc遇到的问题及解决方法
2012-03-26 10:24 1953想要对一个组件项目导出asdoc。组件的sdk是3.6,但使用 ... -
UIComponent添加Image不显示
2012-03-18 17:32 1012在UIComponent中添加Image组件,图片不显示。 ... -
Flex优化技巧
2012-03-30 09:46 897http://www.jb51.net/article/182 ... -
Flex中多个柱状图和折线图的问题
2012-02-28 17:53 1985做了个柱状图和折线图的混合图表,2根3D的柱子,6根折线,遇到 ... -
AdvancedDatagrid的dataprovider属性
2012-02-22 10:15 812高级dataGrid的dataProvider的set方法里并 ... -
Sprite的宽高设置及Flex组件的混淆
2012-02-02 10:23 1690由于Bitmap和InteractiveObject同级,都继 ... -
Flex SDK3.5 PollingChannel.as 存在内存泄露bug的一种解决方法
2011-12-31 15:32 1295bug见前面的一篇文章: http://xltank.ite ... -
TextInput的ErrorString样式
2011-10-25 13:08 901http://blog.minidx.com/2008/05/ ... -
【转】Flash Player的 mm.cfg文件
2011-10-08 17:17 5293http://jpauclair.net/mm-cfg-sec ... -
Flex trace() 保存路径
2011-10-08 17:11 1088http://help.adobe.com/en_US/fle ... -
给ItemRenderer传参
2011-08-18 17:19 1511给ItemRenderer传递初始参数,可以根据参数灵活生成I ... -
AdvancedDatagrid改变行的颜色
2011-08-16 15:25 1617最早我尝试重写AdvancedDatagrid的drawRow ...
相关推荐
在IT行业中,UIComponent(用户界面组件)是一个关键概念,特别是在构建富互联网应用程序(RIA)或现代Web应用时。UIComponent通常指的是一个可重用的、自包含的代码单元,它负责呈现用户界面的一部分,并可能包含...
在本实例中,我们将深入探讨如何在ActionScript中实现自定义组件和自定义事件,这对于创建复杂的Flash应用程序至关重要。 首先,让我们了解自定义组件。在ActionScript中,自定义组件是通过继承已有的UIComponent...
在Flex事件流中,捕获阶段是从最外层的UIComponent祖先组件开始,逐级向下传递,直到到达目标组件。在这个阶段,事件会依次经过所有在事件路径上的父级组件,但不会触及目标组件本身。 2. **目标阶段**: 当事件...
4. 示例学习:在"flex自定义组件事件DEMO"中,你可以看到如何在自定义组件中创建并派发自定义事件,以及如何在其他地方监听和响应这些事件。通过分析代码,可以了解事件生命周期、事件冒泡和捕获的概念,以及如何在...
2. **订阅打开UI成功事件**:在UnityGameFramework框架中,打开UI是通过`UIComponent`组件完成的。首先,你需要在`OnEnter`函数中加载`EventComponent`和`UIComponent`。然后,使用`Event.Subscribe`方法订阅特定...
在Flex开发中,自定义组件和事件通讯是构建复杂应用程序的关键技术。本示例通过一个简单的用户登录场景,深入解析了如何实现组件间的有效通信。下面将详细解释Flex自定义组件、事件处理以及它们在实际应用中的作用。...
在Flex中,自定义组件和事件的使用对于创建功能丰富的用户界面至关重要。下面我们将详细探讨这两个主题。 ### 一、Flex自定义组件 #### 1. 创建自定义组件的原因 在Flex应用中,有时标准组件库提供的组件无法满足...
4. **处理自定义事件**:在事件处理函数中,你可以访问自定义事件中携带的数据和执行相应的业务逻辑: ```actionscript private function onCustomEvent(event:CustomEvent):void { trace("接收到自定义事件:", ...
在实际应用中,开发者可以按照以下步骤使用"BlurryLoading-UiComponent": 1. **引入库**:将库的CSS和JavaScript文件链接到项目中,确保它们在页面加载时可用。 2. **创建HTML结构**:根据库的要求,为需要模糊加载...
在mousedown事件中启动拖放,mousemove事件中更新拖放对象的位置,而mouseup事件中结束拖放。 标签中的"flex air"提示我们这个实例可能还与Adobe Integrated Runtime(AIR)有关。AIR允许Flex应用程序运行在桌面...
5. **处理事件**:在事件处理器中,我们可以根据事件类型执行相应的操作,例如在`dragDrop`事件中,我们可以将拖动的数据应用到目标组件上。 6. **自定义视觉效果**:为了提供更好的用户体验,还可以自定义拖动过程...
5. **交互与事件处理**:通过`id`属性引用非可视化组件,可以在MXML中调用其方法或监听其事件。例如,可以在组件上添加事件监听器: ```xml (event)"/> ``` 6. **库和依赖管理**:`libs`目录通常包含项目所需的...
或者,如果你使用的是`MapLoadComplete`事件处理程序,可以直接在函数中调用: ```actionscript //add this to the MapLoadComplete function changeESRILogo(map); ``` 通过以上步骤,我们就成功地在ArcGIS ...
`isPopUp`是Flash Player和Adobe AIR中的UIComponent类的一个属性,它定义了组件是否应该作为弹出窗口显示。当`isPopUp`设置为`true`时,组件会以弹出窗口的形式出现,通常可以被拖动。但在我们的例子中,我们希望...
监听器函数会接收到滚动事件,并根据事件中的信息更新滚动条的滑块位置。 此外,AS3滚动条还可以实现两种模式:水平滚动条(HORIZONTAL)和垂直滚动条(VERTICAL)。它们的布局和计算方式略有不同,但基本原理相同...
在Flex中,我们可以通过继承现有的UIComponent类或者使用Spark或 Halo组件模型来实现自定义控件。下面将详细探讨Flex自定义控件的相关知识点。 1. **自定义控件的基础** - **UIComponent**: Flex中的所有可视组件...
Flex中的可视化组件具有多个重要特性,包括尺寸管理、事件处理、样式定义、特效以及皮肤定制。尺寸可以通过属性如`height`和`width`进行设置,同时支持百分比和像素单位。事件处理使得组件能响应用户的交互行为,如...
在`FxMap`的`onCreationComplete`事件中,框架会执行以下关键操作: 1. **地图初始化**:创建一个`Map`实例并将其添加到`FxMap`中。 2. **最大范围设置**:如果`FxMap`的子组件中存在`FxMaxExtent`,则将其`bounds`...