社区
Flex
帖子详情
请教:这样的拖动效果是怎样实现?
shukewu
2011-02-19 02:14:11
请教,http://map.qq.com/中拖动地图的这种效果在flex中怎么实现。
用flex中什么控件去实现的。
...全文
256
10
打赏
收藏
请教:这样的拖动效果是怎样实现?
请教,http://map.qq.com/中拖动地图的这种效果在flex中怎么实现。 用flex中什么控件去实现的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
谁在哀伤望月
2011-07-25
打赏
举报
回复
那个地图不是flex
寒勿语
2011-07-14
打赏
举报
回复
用Flex来实现控件的拖动实在是太方便了,夸张点来说用两行代码即可实现。
在控件的mouseDown事件中调用 e.currentTarget.startDrag(); 就可以实现拖动。
在控件的mouseUp事件中调用 e.currentTarget.stopDrag(); 就可以停止拖动。
在这个例子里要注意一个地方,就是e.stopPropagation(); 的使用。
包含在容器中的子控件如果子控件和父控件都可以拖动则要加上e.stopPropagation(); 让时间不再继续分发,这样才能让子控件在容器中拖动。
做了个简单的例子:
是否有试过搬家的时候很烦恼那么多家具怎么摆放比较有条理而且节省空间呢?
我们可以实现一个WEB应用,让用户在房子平面图上按照实际情况摆放家具,这样用户就可以在未移动家具之前模拟移动后的效果了,哈,是不是很酷呢?
演示的例子如下:
http://www.ilinker.net.cn/flexexample/dragdrop/moveobject.html
代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
private function mouseDownHandler(e:MouseEvent):void
{
e.currentTarget.startDrag();
e.stopPropagation();
}
private function mouseUpHandler(e:MouseEvent):void
{
e.currentTarget.stopDrag();
e.stopPropagation();
}
]]>
</mx:Script>
<mx:Style source="defaults.css"/>
<mx:Image id="imgBg" x="0" y="0" source="images/bg.jpg"/>
<mx:Image mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" id="imgTv" x="10" y="479" source="images/tv.png"/>
<mx:Image mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" id="imgTvGig" x="388" y="340" source="images/tvbig.png"/>
<mx:Image mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" id="imgBed" x="122" y="93" source="images/bed.png"/>
<mx:Image mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" id="imgBeg2" x="122" y="462" source="images/bed2.png"/>
<mx:Label mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" id="labTest" x="489" y="277" text="可以拖动的文本"/>
<mx:Panel mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" x="485" y="0" width="107" height="246" layout="absolute">
<mx:Image mouseDown="mouseDownHandler(event)" mouseUp="mouseUpHandler(event)" x="10" y="24" source="images/tv.png"/>
</mx:Panel>
</mx:Application>
jwxkk
2011-02-23
打赏
举报
回复
其实你要的是一个缓动公式
地图是自己的api
我理解lz的意思是用flex做一个类似的效果
其实是用缓冲函数
给你个大概思路
private var easeOut:Number = 0.3;
private var reachX:Number = 0.5;
private var reachY:Number = 0.5;
private var reachZ:Number = 0.05;
在循环下面方法()方法中加入:
mc.x += (xDist - camera.x * reachX) * easeOut;
更多的缓动公式在:
http://www.robertpenner.com/easing/
chinazhousheng
2011-02-23
打赏
举报
回复
我也做地图,其实就是看你拖动鼠标的速度而已,然后你再做一个缓动平移不就完事了?
zhushoudong
2011-02-21
打赏
举报
回复
你可以这样嘛,你拖放鼠标到一定的坐标之后你手动的添加或者减少一定的坐标不久行了
shukewu
2011-02-21
打赏
举报
回复
[Quote=引用 3 楼 lieri111 的回复:]
楼主你要那么多的效果,直接用flash算了
[/Quote]
不会用flash,我是在用flex做地图这块,动画这块就不是很熟悉了。
您会嘛?用什么控件实现呀?
passself
2011-02-21
打赏
举报
回复
楼主你要那么多的效果,直接用flash算了
shukewu
2011-02-21
打赏
举报
回复
[Quote=引用 1 楼 lzp4881 的回复:]
private function onMouseMove(event:MouseEvent):void{
this.coordinateLabel.text = "当前坐标(x,y):" + event.localX.toString() + "," + event.localY.toString(); //相对图片的坐标
if(event.buttonDown){
var x:……
[/Quote]
好像没有达到想象中的那种效果,可能我没有说清楚。这个可以实现了拖动,在map.qq.com那里,鼠标拖动起来之后地图还会往前运动一点。你鼠标拖动力度大的话,好像惯性运动的距离也要大些。
jack_qdb
2011-02-21
打赏
举报
回复
FLEX 可以直接用GOOGLE MAP!你去网上下一个!看看怎么用的
lzp4881
2011-02-19
打赏
举报
回复
private function onMouseMove(event:MouseEvent):void{
this.coordinateLabel.text = "当前坐标(x,y):" + event.localX.toString() + "," + event.localY.toString(); //相对图片的坐标
if(event.buttonDown){
var x:Number = event.stageX - oldX;
var y:Number = event.stageY - oldY;
oldX = event.stageX;
oldY = event.stageY;
map.move(map.x + x,map.y + y);
}
}
private function onMouseDown(event:MouseEvent):void{
oldX = event.stageX;
oldY = event.stageY;
}
<mx:Canvas id="mapArea" width="100%" height="100%" horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Image id="map" source="img/map.jpg" scaleContent="false" mouseMove="onMouseMove(event)" mouseDown="onMouseDown(event)" />
</mx:Canvas>
不同Jquery版本引发的问题解决
这是最近三个月写得最完美的作品了,用JS
实现
了一个拖拽排序,
效果
图如下:一开始进入项目有了这样的拖拽
实现
想法,一点头绪没有,
请教
师兄说这样
实现
不可能。当时觉得很遗憾,打算用传统的方式去
实现
。正构思传统的...
asp.net知识库
使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换
效果
HttpModule
实现
ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web...
【web前端】bootstrap自适应定制,拖拽布局,一键生成页面
这里将介绍整个guiplan开发工具的使用以及前端布局的基础教程。常用的基本操作,如div操作,文字操作,图片操作,组件操作,生成html网页,保存html,css代码。通过拖拽,点击,快捷键等方式轻松绘制想要的静态页面。利用bootstrap框架进行自适应的定制,以及常用弹性盒子布局方式。零基础即可学会网页绘制。软件自动生成的代码也可以手动修改,方便进一步学习与了解前端知识。生成的代码符合w3c规范,也可进行二次开发。这节课讲解的是基本布局教程,不涉及到vue交互。设计师与产品经理也可以用此软件开始制作原型。
自己的案例:鼠标
实现
图像的
拖动
基于matplotlib
实现
了单个图线的
拖动
拖动
图片
效果
对acdsee
拖动
图片
效果
的
实现
。开始不懂双缓冲,以为双缓冲可以解决这个问题,结果发现使用了双缓冲没啥
效果
,
请教
了高人,然后修改了些代码,完成这个
效果
。 图片是在pictureBox1里。 [code=".net"] ...
Flex
4,328
社区成员
9,091
社区内容
发帖
与我相关
我的任务
Flex
多媒体/设计 Flex
复制链接
扫一扫
分享
社区描述
多媒体/设计 Flex
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章