Flash缩放与移动(不用修改注册点)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-07
发现Flash的mouse对象也可以添加事件,便用这些事件写了这个好玩且实用的程序实例。 运用这个实例的思路,我们可以轻易的实现剪辑的缩放和移动,而且不用改变剪辑的注册点。 在做缩放的时候,有一个问题,就是缩放的中心为剪辑的注册点,这使得我们本来是想放大或缩小我们的鼠标的位置,而最后得到的确实注册点放大或缩小后的位置。这个问题也难不倒我们。 在纸上糊乱画了一下,发现一个图形要想以某一点(a,b)为中心放大或缩小,就只需先将图片以(0,0)点缩放,然后再将图片向x轴方向移动-a*sc,向y轴方向移动-b*sc(其中sc缩放比列的增量)。 至于移动的话,就自己看看代码哦!将鼠标按下并移动,或者滚动滚轮试试看。^_^ Flash动画: 程序代码: //剪辑名称为Movie_Clip stop(); fscommand("allowscale",false); varmc_menu:ContextMenu=newContextMenu(); mc_menu.customItems.push(newContextMenuItem("蓝光_BlueShine",GotoBlueShine)); this.menu=mc_menu; functionGotoBlueShine() { getURL("http://www.blue-sun.cn","_blank"); }; varMouseListener:Object=newObject(); //缩放剪辑的代码 MouseListener.onMouseWheel=function(delta) { with(Movie_Clip) { varomx=_xmouse,omy=_ymouse; _xscale+=delta; _yscale+=delta; _x-=omx*delta/100; _y-=omy*delta/100; } }; //移动剪辑的代码 //这里要注册两个变量,用以存储鼠标的初始位置 varoriginMusX:Number,OriginMusY:Number; //还定义一个判断鼠标是否按下的boolean变量 varMousePress:Boolean; MouseListener.onMouseDown=function() { MousePress=true; originMusX=_xmouse; originMusY=_ymouse; } MouseListener.onMouseUp=function() { MousePress=false; } MouseListener.onMouseMove=function() { trace(_xmouse); if(MousePress) { Movie_Clip._x+=_xmouse-OriginMusX; Movie_Clip._y+=_ymouse-OriginMusY; originMusX=_xmouse; originMusY=_ymouse; } } Mouse.addListener(MouseListener); 源文件: i2009313151258.rar 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 如何用flash在有限的页面内制作大的地图下一篇: Flash模块-动态产生元件实例并控制
关于Flash缩放与移动(不用修改注册点)的所有评论