最近很多人遇到这些问题,我就分享一下个人做这些东西时候的经验吧,有不妥之处欢迎拍砖。
分几个技术点来说吧:
1.图片上传,主要是fileReference类,这是上传本地的图片。相关用法查API即可。
2.要想预览的话用fileReference.data,注意,此时SDK版本要高于3.2
3.有时候要截屏,这个主要用BitmapData.draw,示例函数如下
//快照功能函数
private function getBitmapData(target:UIComponent):BitmapData
{
var bd:BitmapData=new BitmapData(target.width, target.height);
var m:Matrix=new Matrix();
bd.draw(target, m);
return bd;
}
然后用实例一个Bitmap(bd)就可以赋值给image.source了,当然还有其他的截屏方法,比如导入mx.graphics.ImageSnapshot;用ImageSnapshot.captureBitmapData(UIComponent)
4.拖拽嘛,类库里是提供了个StartDrag和stopDrag,不过那个能做的功能很有限,在拖拽的过程中要进行些逻辑判断就显得很乏力,我个人的经验是这样的。
首先,监听mouseDown,在mouseDown的时候再监听mouseMove和mouseUp;
然后,在mouseMove中可以自己写拖拽逻辑,很灵活,比如拖拽组件A,组件B可以跟随等等,设置拖拽边界也在这里进行;
最后,在mouseUp中remove以上监听函数。
当然有些人在mouseDown之前还用了一下mouseOver,这可以扩展更多的东西,做出更帅的拖拽体验。
建议这种东西写个类,以便复用,还有如果一个组件里面的元件比较多,也可以用拖拽位图的方式来优化一下,可以提高性能。在拖拽之前做个快照,然后组件设置为不可见,拖拽的其实只是张位图,然后拖拽完成之后,再把组件摆到相应位置,同时设置为可见。这个代码比较多就不贴了,了解思路就能做出来了。
5.拖拽加缩放,这个一般用第三方库,ObjectHandler个人认为比较不错。当然也可以自己写一个类,思路是差不多的,先写个Dot类,再写个DragBox类,拖拽思路还是mouseOver,mouseDown,mouseMove,mouseUp,适时的add和remove监听器,然后注意下用户体验,比如鼠标不能总是箭头吧或者拖拽的时候加点滤镜。或者增加点额外功能,比如拖拽点的数量,是否设置拖拽时长和宽的比例,加上这些东西复用性就更强了。
其实这些功能上的东西并不是特别难搞定,重要的还是设计出好的用户体验,想把这些技术综合应用的朋友一般都是想做头像上传功能组件吧。人人网和开心网上做的感觉用户体验就不是很好,白社会做的还是蛮犀利的,当然白是后出来的,现在后出来的都越来越好,听说QQ有个应用上的头像上传增加了人脸识别,那就更强大了。。。
分享到:
相关推荐
flex图片上传带预览功能。Flex,Flex
Flex4.6+java+servlet上传图片例子+图片上传预览
flex批量上传图片带预览功能flex批量上传图片带预览功能flex批量上传图片带预览功能
[图片动画]flex图片上传带预览功能_flexsc.zip源码ASP.NET网站源码打包下载[图片动画]flex图片上传带预览功能_flexsc.zip源码ASP.NET网站源码打包下载[图片动画]flex图片上传带预览功能_flexsc.zip源码ASP.NET网站...
flex 图片画线,图片拖动,图片高亮,拖动线随图片动
不错的图片预览功能,可以实现滚动预览,效果很炫
Flex 图片上传 实例 源码Flex图片上传实例
使用flex开发的图片的预览,实现了百度首页新闻图片预览,和jquery图片预览类似,有三种不同的布局和功能差异化设计,为个人完善提供了方案参考,代码均可直接运行,欢迎提出异议。
Flex 图片旋转 缩放 拖动 特效 整个项目,其中的特效封装成一个控件,直接使用,
flex图片上传带预览功能_图片动画网站
ASP.NET-[图片动画]flex图片上传带预览功能.zip
完善的flex+spring图片上传及预览功能 对bmp图片的转换
ASP.NET源码——[图片动画]flex图片上传带预览功能.zip
ASP,NET源码——[图片动画]flex图片上传带预览功能.zip
Flex相册 Flex图片
[图片动画]flex图片上传带预览功能_flexsc(ASP.NET源码).rar
批量上传,图片以缩略图排列,双击查看大图;设了回收站,通过拖动就可删除或还原需上传的图片;可为每个图片起别名,该别名会作为参数传到后台;通过 servlet实现上传。
可进行图片上传,还可以进行图片预览,类似windows。