- 浏览: 98797 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chensong215:
无法获取到ProgressEvent中的bytesTotal
自定义DownloadProgressBar -
qq2464785999:
非常感谢。
测试后,发现要用相对路径的话,好像要这么写
va ...
Flex写XML文件
Flex 按钮同时监听单击和双击事件
有时我们在一些应用实例中可能会遇到这么一种需求:同一个组件,比如一个 button,需要同时监听单击 click 和 双击 double click 事件。通常在列表中,这种需要更为常见一些。例如有左右两个分栏列表,点击选中,可以作一些操作;双击列表项则可以将一侧列表项移动到另一侧。
我们知道,在 Flex 里面,有 click 事件和 doubleClick 事件。click 用于处理单击,doubleClick 用于处理双击。于是,我们可以写出下面的代码:
<?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"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
private function clickHandler(event:MouseEvent):void
{
label.text += "click\n";
}
private function doubleClickHandler(event:MouseEvent):void
{
label.text += "double click\n";
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:Button label="hello, world"
click="clickHandler(event)"
doubleClickEnabled="true"
doubleClick="doubleClickHandler(event)"/>
<s:Label id="label" />
</s:Application>我们希望当点击 button 的时候,label 显示 click;双击的时候则显示 double click。然而,运行一下程序会发现,双击按钮时,label 会显示一个 click 一个 double click。这是由于 double click 属于双击,双击其实由两个单击组成。因此,Flex 在检测到双击的同时,也发现了单击。
解决方案是,我们在 click 事件中添加一个延时。在 click 事件发出时,启动延时机制,如果在一小段时间中没有检测到第二次点击,则认为这就是一个 click 事件,执行这个 click 事件的处理函数;如果在延时期检测到第二次点击,则认为是一个 double click 事件,执行 double click 事件的处理函数。
<?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"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
private var interval : Number = 0;
private function clickHandler(event:MouseEvent):void
{
clearInterval(interval);
interval = setInterval(deferredClickHandler, 200);
}
private function deferredClickHandler() : void
{
label.text += "click\n";
clearInterval(interval);
}
private function doubleClickHandler(event:MouseEvent):void
{
clearInterval(interval);
label.text += "double click\n";
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:Button label="hello, world"
click="clickHandler(event)"
doubleClickEnabled="true"
doubleClick="doubleClickHandler(event)"/>
<s:Label id="label" />
</s:Application>在这段代码中,click 事件使用 setInterval() 函数设置一个 200 毫秒的延时。延时的回调函数是 deferredClickHandler()。如果延时结束,则执行 deferredClickHandler() 函数中的语句,也就是单击事件的实际处理语句。最后不要忘记 clear 这个定时器。如果是双击,则会进入 doubleClickHandler() 回调函数。在这个函数中,首先要停止计时器,然后再执行所需要的操作。这样,我们就利用一个延时的定时器,实现了同时处理单击和双击事件这一需求。
值的说明的是,这一技术不仅用于 Flex,同时可以用于 js 等页面技术。
本文代码使用 Flex 4.5.1 测试通过。
有时我们在一些应用实例中可能会遇到这么一种需求:同一个组件,比如一个 button,需要同时监听单击 click 和 双击 double click 事件。通常在列表中,这种需要更为常见一些。例如有左右两个分栏列表,点击选中,可以作一些操作;双击列表项则可以将一侧列表项移动到另一侧。
我们知道,在 Flex 里面,有 click 事件和 doubleClick 事件。click 用于处理单击,doubleClick 用于处理双击。于是,我们可以写出下面的代码:
<?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"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
private function clickHandler(event:MouseEvent):void
{
label.text += "click\n";
}
private function doubleClickHandler(event:MouseEvent):void
{
label.text += "double click\n";
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:Button label="hello, world"
click="clickHandler(event)"
doubleClickEnabled="true"
doubleClick="doubleClickHandler(event)"/>
<s:Label id="label" />
</s:Application>我们希望当点击 button 的时候,label 显示 click;双击的时候则显示 double click。然而,运行一下程序会发现,双击按钮时,label 会显示一个 click 一个 double click。这是由于 double click 属于双击,双击其实由两个单击组成。因此,Flex 在检测到双击的同时,也发现了单击。
解决方案是,我们在 click 事件中添加一个延时。在 click 事件发出时,启动延时机制,如果在一小段时间中没有检测到第二次点击,则认为这就是一个 click 事件,执行这个 click 事件的处理函数;如果在延时期检测到第二次点击,则认为是一个 double click 事件,执行 double click 事件的处理函数。
<?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"
minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
private var interval : Number = 0;
private function clickHandler(event:MouseEvent):void
{
clearInterval(interval);
interval = setInterval(deferredClickHandler, 200);
}
private function deferredClickHandler() : void
{
label.text += "click\n";
clearInterval(interval);
}
private function doubleClickHandler(event:MouseEvent):void
{
clearInterval(interval);
label.text += "double click\n";
}
]]>
</fx:Script>
<s:layout>
<s:VerticalLayout />
</s:layout>
<s:Button label="hello, world"
click="clickHandler(event)"
doubleClickEnabled="true"
doubleClick="doubleClickHandler(event)"/>
<s:Label id="label" />
</s:Application>在这段代码中,click 事件使用 setInterval() 函数设置一个 200 毫秒的延时。延时的回调函数是 deferredClickHandler()。如果延时结束,则执行 deferredClickHandler() 函数中的语句,也就是单击事件的实际处理语句。最后不要忘记 clear 这个定时器。如果是双击,则会进入 doubleClickHandler() 回调函数。在这个函数中,首先要停止计时器,然后再执行所需要的操作。这样,我们就利用一个延时的定时器,实现了同时处理单击和双击事件这一需求。
值的说明的是,这一技术不仅用于 Flex,同时可以用于 js 等页面技术。
本文代码使用 Flex 4.5.1 测试通过。
发表评论
-
flex 自定义多个命名空间以及标签名
2013-01-22 15:21 1285flex 自定义多个命名空 ... -
FLEX中使用AS动态创建DataGrid
2013-01-09 16:24 894FLEX中使用AS动态创建DataGrid 2010年2月6日 ... -
flex与flash之间相互调用
2012-12-12 12:39 615http://www.cnblogs.com/kaixuan/ ... -
Flex与Flex创建的swf通信
2012-12-12 10:16 716加载子SWF的Flex程序代码 <?xml vers ... -
[AS3]加载视频(FLV)文件
2012-12-06 15:11 854[AS3]加载视频(FLV)文件 分类: FLEX/CS3-- ... -
通过FileReference打开本地图片崩溃的解决方法
2012-12-06 14:02 711通过FileReference打开本地图片崩溃的解决方法 最近 ... -
使用FileReference的load()方法加载本地图片
2012-12-06 13:56 9091、要想使用FileReference的load()方法和da ... -
[AS3]Bitmap序列化(将BitmapData保存为原生Binary/ByteArray)
2012-12-06 13:48 755[AS3]Bitmap序列化(将BitmapData保存为原生 ... -
as3 画五角星算法
2012-12-05 16:49 2606as3 画五角星算法 阅读:10次 时间:2012-03- ... -
flex嵌入完整html
2012-11-29 11:18 806有时候我们需要在Flex应用中嵌入HTML代码,根据嵌入HTM ... -
flex4 textArea的htmlText属性
2012-11-29 11:13 3104它现在包含Text布局框架(Text Layout Frame ... -
Tooltip应用
2012-11-29 11:11 714创建ToolTip: var errorToolTip:To ... -
数据绑定显示问题
2012-10-27 12:11 645数据绑定实时变化。 XMLListCollection 可以变 ... -
待解决问题
2012-09-18 23:48 7011.仪表盘 2.渐变填充的使用 3.发光效果的完美运用 能在一 ... -
as3加载外部图片的两种方式
2012-09-09 11:46 1000package net.burchin.loading { ... -
公式as3
2012-09-06 18:13 0as3 1人收藏此文章, 我要收藏 发表于1年前(2011-0 ... -
Flex中多线程的实现
2012-09-06 10:49 3481破阵子_如是我闻 如是我闻。一时佛在舍卫国,祗树给孤独园.. ... -
自定义column renderer
2012-08-09 15:07 914<?xml version="1.0" ... -
drowshadowFilter
2012-08-09 15:05 655DropShadowFilter 类,在Flash中为各种对象 ... -
123123
2012-08-08 17:16 0http://www.oschina.net/code/sni ...
相关推荐
flex事件flex事件flex事件flex事件flex事件
flex单击图片拖动,双击图片旋转,双击单击同时用,虽然不难,但对初学者很有帮助的,找到一个很好的例子来学习flex会事半功倍
Flex4.6 屏蔽鼠标双击事件,列表列锁定。
flex 按钮 风格 打包 下载,您一定想定制各种不同风格的 flex 按钮 吧 看下吧 包你有用哦
flex监听浏览器关闭事件,完成对于浏览器关闭事件的监听。以及弹出相应的关闭提示
flex开发项目,application实现点击按钮界面全屏,或双击实现全屏,我搜集的方法集合。
Flex 作出的按钮 可以作为参考,word里有显示的样子
flex datagrid 添加按钮并根据特定内容进行判断是否显示按钮
Flex 按钮代替滚动条,看了就知道了。。
Flex各种控件,样式生成工具(定制各种Flex按钮网页css样式),可视化操作,自动生成css代码。适合界面开发者使用,实现快速开发。
6款自己写的flex btn皮肤,其中包含4种无边框样式,2种带边框按钮。
通过JAVA代码,让你了解Flex的事件模型。
Flex4 DataGrid表格操作,表格回车事件默认是换行,这里修改为换单元格,单元格轮完换行。支持上下左右和回车键控制光标位置,还添加了"+","-"按钮,用于控制添加行和删除选中的行。
FLEX双击左右移动表格中的数据,此小程序希望对大家会有些帮助。
精通flex3.0 精通 Flex3.0 LCDS ActionScript 事件
Flex 编程注意之自动获取焦点、监听全局键盘事件
NULL 博文链接:https://libo-591.iteye.com/blog/1455678
flex事件运行流程
flex3 转 flex4 原来的皮肤不能使用,该文档是flex4的图片按钮类,非常好用哦,自己写的
快速掌握flex的事件机制,让你灵活运用flex的事件完成所有功能。