快速业务通道

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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号