Flex实现web版图片查看器
项目需求:
在web端实现图片浏览,具有放大、缩小、滚轴放大缩小、移动、旋转以及范围控制。
成果图:
核心代码:
1、放大:此处放大是点击按钮,按1.5倍高宽进行放大。
img.width = img.width *1.5;
img.height = img.height *1.5;
2、缩小:此处缩小是点击按钮,按0.5倍高宽进行缩小。
img.width = img.width *0.5;
img.height = img.height *0.5;
3、旋转:此处旋转是按顺时针旋转90度。
img.rotation = img.rotation - 90;
4、滚轴放大缩小:
--先添加滚轴监听
systemManager.addEventListener(MouseEvent.MOUSE_WHEEL, doMouseWheel);
--判断当滚轴向前或向后移动时,作出相应反应
private function doMouseWheel(evt:MouseEvent):void
{
//滚轴向前,放大图片
if(evt.delta > 0)
{
img.width = img.width *1.5;
img.height = img.height *1.5;
}
else
{
img.width = img.width * 0.5;
img.height = img.height * 0.5;
}
}
5、移动:图片查看最难的在于移动时的范围控制(不让图片超过图片查看窗口)
--首先添加鼠标按下、弹起的监听事件
private function pan():void
{
img.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDowns);
img.addEventListener(MouseEvent.MOUSE_UP,onMouseUps);
}
--鼠标按下、弹起响应事件(并设定范围)
private function onMouseDowns(evt:MouseEvent):void
{
//拖拽事件,在600*400的矩形范围内拖拽
evt.currentTarget.startDrag(false,new Rectangle(0,0,600-img.width,400-img.height));
evt.currentTarget.addEventListener(MouseEvent.MOUSE_UP,onMouseUps);
}
private function onMouseUps(evt:MouseEvent):void
{
evt.currentTarget.stopDrag();
evt.currentTarget.removeEventListener(MouseEvent.MOUSE_UP,onMouseUps);
}
--在施行这样的方法时,会出现一个bug,即鼠标按下拖拽的时候,当鼠标超出窗体时(可能是失去焦点了),即使鼠标弹起也不会触发MouseUp事件
--所以,添加一个监听,超出窗体则不执行拖拽了
protected function bdImg_mouseOutHandler(event:MouseEvent):void
{
this.stopDrag();
}
PS:需要在装image的容器外添加上Scroller ,目的是切割图片,防止图片显示超过容器部分。
<s:Scroller id="sc">
<s:Group id="gp" height="100%" width="100%">
<s:Image id="img"
horizontalCenter="0"
verticalCenter="0"/>
</s:Group>
</s:Scroller>
Flex实现web版图片查看器的更多相关文章
- IIS事件查看器_WebServer事件查看器_帮助查看IIS-Web服务器事件执行日志
IIS服务器是我们常用的Web站点部署工具,而我们有时可能遇到IIS服务器的应用程序池莫名其妙的关闭了,或者是其他未知原因等等,我们这是可以通过微软提供的WebServer(Web服务事件查看器),来 ...
- Win10默认图片查看器更改
Win10自带的图片查看器不是很习惯,其背景乌漆嘛黑,宽扁的额头让人想起了黑边火腿肠手机,无法直视.怀念Win7和Win8.1的图片查看器,一个鼠标滚轮缩放自如的酸爽感觉.但却遗憾地发现,并不能直观地 ...
- Asp.Net Core写个共享磁盘文件Web查看器
本篇和大家分享的是一个磁盘文件查看系统,严格来说是使用NetCore写的一个Web系统应用,由于NetCore跨平台特性,我生成了exe的运行包,只需要配置运行电脑ip+端口,即可在浏览器中通过IP+ ...
- 在web项目中集成pdf.js的默认查看器
pdf.jsMozilla开源的一项用于在HTML5平台上显示pdf文档的技术,Mozilla自己的Firefox浏览器也用了pdf.js来预览pdf,可见应该是一个比较成熟稳定的方案(btw,chr ...
- OLE/COM 对象查看器 & OLE常用术语
"OLE/COM Object Viewer"(OLE/COM 对象查看器)查看你系统上安装的所有 COM 对象时,是一个非常便利的工具. 它是 Windows 2000 资源套件 ...
- 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)
介绍 Cache技术广泛应用于计算机行业的软硬件领域.该技术既是人们对新技术探讨的结果,也是对当前软硬件计算能力的一种妥协.在浏览器中使用cache技术,可以大幅度提高web页面的响应速度,降低数据传 ...
- python实现web分页日志查看
当我们维护一个网站时,无论前台还是后台,经常会出现各种个样的问题.有时候问题很难直观的发现,这个时候只能查看各种日志来跟踪问题.但是查看日志有各种个样的问题.首先,要用各种工具登陆到服务器,这个有时候 ...
- 使用chrome控制台作为日志查看器
很多时候,我们需要查看日志的实时输出,这个时候往往只能选择控制台.我这里的日志框架是serilog,它有一个好处是控制台输出时可以高亮的形式显示其参数结构信息,如下图所示 但也存在许多不方便的地方: ...
- Java Log Viewer日志查看器
工欲善其事必先利其器 在投奔怒海--一个Domino老程序猿眼里的Java开发我提到眼下所做的Java开发中遇到的大量日志之问题. server控制台刷屏似地滚动,日志文件飞快地增长,debug的时候 ...
随机推荐
- Unity常用协程功能封装
# 1.前言unity开发过程中,经常用到一些特定的协程功能,比如延时触发.等待触发.重复操作等.unity自带Invoke以及InvokeRepeating方法,但这些方法均采用反射机制,性能消耗, ...
- webpack中如何使用图标字体
1.webpack安装相关依赖 $ npm install font-awesome-webpack less less-loader css-loader style-loader file-loa ...
- 百度NLP预训练模型ERNIE2.0最强实操课程来袭!【附教程】
2019年3月,百度正式发布NLP模型ERNIE,其在中文任务中全面超越BERT一度引发业界广泛关注和探讨.经过短短几个月时间,百度ERNIE再升级,发布持续学习的语义理解框架ERNIE 2.0,及基 ...
- XSS与CSRF详解
XSS与CSRF详解 随着Web2.0.社交网络.微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起 ...
- Markdown 编辑图片居中
Markdown 编辑图片居中 <center><p></p& ...
- 【模板】prufer序列
如何构造一个prufer序列? 我们给一棵无根树的节点编上号,每次找到一个编号最小的度为1节点,删除它,并输出与它连接的点的编号,直到只剩下两个节点. 这样,我们就构造出来了一个prufer序列. 通 ...
- python中生成器及迭代器
列表生成式 列表生成式是python内部用来创建list的一种方法,其格式形如: L = [x*8 for x in range(10)] print(L) 此时会得到结果:[0, 8, 16, 24 ...
- VM小技巧——虚拟机解决vm窗口太小的办法
——" 慢下来总结才能增大效率" 很多人在装虚拟机的时候,遇到了窗口过小不能自适应的问题.我也是查了好多资料,都说安装Vmware Tools即可解决,还有说修改分辨率也可以.两种 ...
- 模拟示例raid 5(5块磁盘 3块做raid 2块做备份 ) raid 10(5块磁盘) 修改版
RAID5:需要至少三块(含)硬盘,兼顾存储性能.数据安全和储存成本. RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高. raid 10(5块磁盘) 1.添加硬盘设备(添加5块) ...
- mysql用find_in_set代替like搜索提高性能
mysql用find_in_set代替like搜索提高性能 <pre>SELECT * from mobantestinfo1 where find_in_set('33',info2); ...