- 浏览: 31349 次
- 性别:
- 来自: 西安
文章分类
最新评论
为了演示事件冒泡,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 551test -
test
2014-08-24 09:43 575teste -
3、Flex全屏方式
2011-11-22 23:27 1052<?xml version="1.0" ... -
2、html或jsp中加入flash的方式
2011-11-22 23:26 2877在flex+java的web工程中,html或jsp中可加入f ... -
1、建立java+flex项目
2011-11-22 23:26 8651.向导界面 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 30121、<mx:DateField yearNaviga ... -
FLEX中带复选框的DataGrid
2011-09-23 10:07 14961.主文件 <?xml version=" ... -
FLEX数据传输中的乱码解决方案
2011-09-22 15:15 0var byteArray:ByteArray = new B ... -
Flex中mx:model标签的运用
2011-09-23 10:09 879使用<mx:Model id="example ... -
ApplicationControlBar组件及creationComplete
2011-09-23 10:10 10771.flex加载完成后,可以调用方法,包括httpservic ...
相关推荐
flex4 自定义事件 用法 源码 完整项目导入可运行
Flex4自定义组件 介绍了flex中如何自定义组件以及相关应用
flex 高级自定义组件 需要重写的方法,以及为什么要重写,何时调用等。
Flex自定义组件和自定义事件的使用。 Flex自定义组件和自定义事件的使用。
flex自定义组件事件DEMO,一个简单的flex自定义组件的demo
flex 自定义组件,UI,flex 自定义组件。
Flex3自定义组件类似于Fieldset
你还在头痛flex4组件皮肤怎么自定义吗?看我给你们上传的吧;因皮肤中还是有部分mx组件,如果不能正常使用,请自己把所以mx组件改成sp组件
因为工作原因和个人兴趣原因,刚接触flex,遇到不少问题,这次花了一个早上的时间专门研究了一下组件件的拖拽,呵呵,还是很有成就感的。
研究Flex 组件声明周期,了解组件的生成步骤
Flex4 自定义通用ImageButton
自己写的实例,包括 ActionSctip的自定义事件及自定义组件!
flex4.5自定义组件介绍,自定义组件前提条件
flex自定义事件的含义 简单例子说明 。。。。。。。。。。
flex事件flex事件flex事件flex事件flex事件
NULL 博文链接:https://demojava.iteye.com/blog/1159535
flex4自定义弹出窗口 支持最大化 最小化
FLex自定义写的控件,有时间,datagrid,tree,combox等,以及常用的处理字符串,弹出窗口
如何接收事件?如何做到AS3.0的标准事件编程? 类似JAVA的监听或观察者模式 Event改变的部分很多,正在想怎样用一个有条理的方式来讲解Event和它相关的诸多内容,让我们感到比较容易理解,记忆和接受。