- 浏览: 32912 次
- 性别:
- 来自: 西安
文章分类
最新评论
为了演示事件冒泡,demo写的可能有点繁琐。大家凑合看看。
1.project结构
2、主文件
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ax="com.future.visual.*" layout="absolute" creationComplete="init();"> <mx:Script> <![CDATA[ import mx.controls.Alert; import com.future.event.SelectSongEvent; private function init():void{ this.addEventListener(SelectSongEvent.SELECT_SONG,handler); } private function handler(event:SelectSongEvent):void{ this.Song.text = "当前选择的歌曲是: "+event.selectedSong; } ]]> </mx:Script> <mx:HBox> <mx:Label id="Song" text="none" x="100"/> <ax:WorkSpace id="ws"/> </mx:HBox> </mx:Application>
3、WorkSpace.as
package com.future.visual { import com.future.event.SelectSongEvent; import component.SongList; import flash.events.Event; import flash.events.MouseEvent; import mx.containers.Canvas; import mx.controls.Alert; import mx.controls.Button; import mx.managers.PopUpManager; public class WorkSpace extends Canvas { private var songs:XML = <SongList> <song id="1" name="水手" songer="张雨生"/> <song id="2" name="大海" songer="张雨生"/> <song id="3" name="不在犹豫" songer="beyond"/> <song id="4" name="海阔天空" songer="beyond"/> </SongList>; public function WorkSpace() { var btn:Button = new Button(); btn.id="song"; btn.label = "Select Song"; btn.x = 30; btn.y = 400; btn.addEventListener(MouseEvent.CLICK,changeHandler); this.addChild(btn); } private function changeHandler(event:Event):void{ var sl:SongList = SongList(PopUpManager.createPopUp(this,SongList,true)); sl.title = "SongList" ; sl.data = songs; sl.callbackFunction = changeSong; PopUpManager.centerPopUp(sl); } private function changeSong(str:String):void{ var e:SelectSongEvent = new SelectSongEvent(SelectSongEvent.SELECT_SONG,true); e.selectedSong = str; this.dispatchEvent(e); } } }
4、弹出窗口SongList.mxml
<?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%"> <mx:Script> <![CDATA[ import mx.managers.PopUpManager; import com.future.event.SelectSongEvent; import mx.controls.Alert; [Bindable]public var callbackFunction:Function; //回调函数 [Bindable]public var str:String = ""; private function onQuit():void{ PopUpManager.removePopUp(this); return; } private function selectSong():void{ // var sse:SelectSongEvent = new SelectSongEvent("select song",true); // sse.selectedSong = songList.selectedItem as String; // this.dispatchEvent(sse); PopUpManager.removePopUp(this); callbackFunction.call(str,XML(songList.selectedItem).@name); } ]]> </mx:Script> <mx:VBox> <mx:DataGrid id="songList" dataProvider="{XML(this.data).children()}"> <mx:columns> <mx:DataGridColumn headerText="顺序" dataField="@id"/> <mx:DataGridColumn headerText="歌曲" dataField="@name"/> <mx:DataGridColumn headerText="歌手" dataField="@songer"/> </mx:columns> </mx:DataGrid> <mx:HBox> <mx:Button label="确定" click="{selectSong();}"/> <mx:Button label="退出" click="{onQuit();}"/> </mx:HBox> </mx:VBox> </mx:TitleWindow>
5、自定义事件、这里的属性最好写成private类型,再加上set、get方法。我这里写的是public 的
package com.future.event { import flash.events.Event; public class SelectSongEvent extends Event { public static const SELECT_SONG:String = "select song"; public var selectedSong:String; public function SelectSongEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) { super(type, bubbles, cancelable); } } }
- FlexTest.rar (492.5 KB)
- 下载次数: 21
发表评论
-
test1
2014-08-24 18:38 631test -
test
2014-08-24 09:43 660teste -
3、Flex全屏方式
2011-11-22 23:27 1102<?xml version="1.0" ... -
2、html或jsp中加入flash的方式
2011-11-22 23:26 2911在flex+java的web工程中,html或jsp中可加入f ... -
1、建立java+flex项目
2011-11-22 23:26 9041.向导界面 2. 3.向导界面 ... -
Flex 的基礎架構
2011-11-02 11:29 0Flex 的基础架构 关于flex 基本上常被问到的不外乎就 ... -
基础的数据管理(LCDS)
2011-10-11 14:00 0基础的数据管理(LCDS) ... -
FLEX DateField及DateChooser
2011-11-22 23:27 30681、<mx:DateField yearNaviga ... -
FLEX中带复选框的DataGrid
2011-09-23 10:07 15791.主文件 <?xml version=" ... -
FLEX数据传输中的乱码解决方案
2011-09-22 15:15 0var byteArray:ByteArray = new B ... -
Flex中mx:model标签的运用
2011-09-23 10:09 913使用<mx:Model id="example ... -
ApplicationControlBar组件及creationComplete
2011-09-23 10:10 11371.flex加载完成后,可以调用方法,包括httpservic ...
相关推荐
在Flex编程中,事件机制是...在实际项目中,自定义事件常用于实现复杂逻辑,如模块间的通信、状态更新通知以及异步操作的回调等场景。熟练掌握自定义事件的创建和使用,对于提升Flex应用程序的性能和用户体验至关重要。
在Flex中,它能确保回调在事件队列的末尾执行,避免UI更新和数据处理之间的冲突。 ### 23. 是否使用模块化开发,其优缺点是什么,使用方式及其局限性? 模块化开发在Flex中可以提高代码的可维护性和可重用性。优点...
微信小程序快速开发(视频指导版)根据微信小程序的内容,全面系统地介绍了微信小程序的搭建和开发。本书主要内容有小程序注册、编程基础知识、小程序...冒泡事件、回调函数、上传下载和录音API、第三方工具和代码调试。
微信小程序快速开发:视频指导版》是2017年5月由人民邮电出版社出版的...冒泡事件、回调函数、上传下载和录音API、第三方工具和代码调试。本书特点为零基础入门,手把手教你小程序开发。配套开发视频,全程同步指导。
总的来说,这个环形/扇形菜单的实现利用了React的组件化思想和CSS的布局及动画特性,提供了一种优雅的方式来创建交互式的UI元素。尽管这是一个基础版实现,但可以通过添加更多功能和优化,如自定义样式、更复杂的...
7. 异步编程和错误处理:理解如何使用回调函数、Promise或Future进行异步操作,以及如何有效地处理运行时错误,是编写健壮AS3.0程序的基础。 8. 高级特性:包括命名空间、访问修饰符、包私有性、抽象类和静态成员等...
- **异步编程**:Promise、async/await的使用,以及与回调函数的区别。 - **事件循环与宏任务/微任务**:了解Event Loop,区别setTimeout和Promise.then的执行顺序。 4. **CSS与布局** - **盒模型**:理解...
设置响应 HTTP 请求状态变化的回调函数。 4. 发送 HTTP 请求。 5. 获取异步调用返回的数据。 6. 使用 JavaScript 和 DOM 实现局部刷新。 2. **清除浮动的技巧** - 清除浮动有多种方法,例如使用额外标签法、伪...
提供的代码示例中,`console.log(1)`先执行,然后异步任务`setTimeout`和`Promise`的回调,其中`Promise`的`then`属于微任务,优先执行,故顺序为1634257。 9. **JavaScript内置类型**: - 基本类型:`null`、`...
4. **jQuery插件开发**:学习如何封装自己的代码为jQuery插件,包括如何使用`.fn.extend()`方法扩展jQuery对象,以及如何设置插件选项和回调函数。 5. **事件监听和触发**:在手风琴效果中,图片的展开和收起需要...
5. **异步编程**:包括回调函数、Promise、async/await等,用于处理非阻塞的I/O操作。 **浏览器** 1. **存储方式**:包括Cookie、localStorage、sessionStorage、IndexedDB等。 2. **HTTP请求**:GET用于获取资源,...
- **回调函数**:是最传统的异步编程方式,但在复杂的逻辑中容易导致回调地狱(Callback Hell)。 - **Promises**:改进了回调的问题,提供了一种更优雅的方式来处理异步操作。 - **Async/Await**:进一步简化了异步...
- **异步编程**:包括回调函数、Promise、async/await等。 4. **HTTP**: - HTTP协议的主要方法:GET、POST、PUT、DELETE等。 - **HTTP状态码**:如200(成功)、404(未找到)、500(服务器内部错误)。 - **...
异步非顺序执行,利用回调、Promise或async/await处理非阻塞操作。 30. 性能优化方法: - 减少HTTP请求 - 压缩和合并资源文件 - 使用CDN加速 - 利用缓存策略 - 优化图片资源,如使用WebP格式,压缩图片大小 -...
- **创建异步请求**:使用 `XMLHttpRequest` 或者 `fetch API` 发起异步请求,并通过回调函数或 Promise 处理响应结果。 - **异步请求完成过程**:通常包括打开连接、发送请求、接收响应、处理响应数据等步骤。 ###...
2. **异步编程**:理解回调函数、Promise、async/await 的异步处理方式。 3. **原型链与继承**:理解 JavaScript 的原型继承机制,以及类(Class)的使用。 4. **闭包**:掌握闭包的作用和应用场景,避免内存泄漏...