中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 图形图象 > 网页设计 > Flash
Flash教程:鼠标调整窗口大小
作者:佚名 时间:2006-07-19 23:10 出处:www.webdn.com 责编:sakurateam
              摘要:本文介绍Flash MX 2004自带的Window组件,功能并不丰富。现在,为它加上用鼠标调整窗口的大小的功能 。
函数:
//随鼠标缩放大小函数
//finger:指针
//wLeast:最小宽度
//hLeast:最小高度度
MovieClip.prototype.MouseSetSize = function(finger:String, wLeast:Number, hLeast:Number) {
if (wLeast == undefined) {
wLeast = 50;
}
if (hLeast == undefined) {
hLeast = 30;
}
var depth = this.getNextHighestDepth();//指针深度
var mc = this;
var drag:Boolean = false;//是否可以缩放
var nm:Number;//当前指针序号
var px:Number;//缩放开始时的鼠标x位置
var py:Number;//缩放开始时的鼠标y位置
onMouseMove = function() {
var xm = mc._xmouse;//相对鼠标x位置
var ym = mc._ymouse;//相对鼠标y位置
var w = mc.__width;//组件宽
var h = mc.__height;//组件高
//缩放组件
if (drag) {
if (nm == 1) {
if (px>=4) {
if (xm<wLeast) {
xm = wLeast;
}
mc.setSize(Math.floor(xm), h);
} else {
mc.setSize(w-xm, h);
if (w-xm>=wLeast) {
mc._x = _xmouse;
} else {
mc.setSize(wLeast, h);
}
}
} else if (nm == 2) {
if (py>=4) {
if (ym<hLeast) {
ym = hLeast;
}
mc.setSize(w, Math.floor(ym));
} else {
mc.setSize(w, h-ym);
if (h-ym>=hLeast) {
mc._y = _ymouse;
} else {
mc.setSize(w, hLeast);
}
}
} else if (nm == 3) {
if (py>=4) {
if (ym<hLeast) {
ym = hLeast;
}
mc.setSize(w-xm, Math.floor(ym));
if (w-xm>=wLeast) {
mc._x = _xmouse;
} else {
mc.setSize(wLeast, Math.floor(ym));
}
} else {
if (xm<wLeast) {
xm = wLeast;
}
mc.setSize(Math.floor(xm), h-ym);
if (h-ym>=hLeast) {
mc._y = _ymouse;
} else {
mc.setSize(w, hLeast);
}
}
} else if (nm == 4) {
if (py>=4) {
if (xm<wLeast) {
xm = wLeast;
}
if (ym<hLeast) {
ym = hLeast;
}
mc.setSize(Math.floor(xm), Math.floor(ym));
} else {
mc.setSize(w-xm, h-ym);
if (w-xm>=wLeast) {
mc._x = _xmouse;
} else {
mc.setSize(wLeast, h);
}
if (h-ym>=hLeast) {
mc._y = _ymouse;
} else {
mc.setSize(w, hLeast);
}
}
}
}
//判断是否在范围内
if ((xm>=0 && xm<=w && ym>=0 && ym<=h) && !(xm>=3 && xm<=w-3 && ym>=3 && ym<=h-3)) {
if (mc.mouse == undefined) {
Mouse.hide();
mc.attachMovie(finger, "mouse", depth, {_x:xm, _y:ym});
startDrag(mc.mouse, true);
nm = 1;
}
if (ym>=15 && ym<=h-15) {
if (nm != 1) {
mc.mouse.gotoAndStop(1);
nm = 1;
}
} else if (xm>=15 && xm<=w-15) {
if (nm != 2) {
mc.mouse.gotoAndStop(2);
nm = 2;
}
} else if ((ym<=3 && xm>=w-15) || (ym>=h-3 && xm<=15)) {
if (nm != 3) {
mc.mouse.gotoAndStop(3);
nm = 3;
}
} else if ((ym<=3 && xm<=15) || (ym>=h-3 && xm>=w-15)) {
if (nm != 4) {
mc.mouse.gotoAndStop(4);
nm = 4;
}
}
onMouseDown = function () {
if (mc.mouse != undefined) {
drag = true;
px = xm;
py = ym;
}
};
updateAfterEvent();
} else {
if (mc.mouse != undefined) {
mc.mouse.removeMovieClip();
Mouse.show();
}
}
onMouseUp = function () {
drag = false;
};
};
};

  使用窗口.MouseSetSize(finger, wLeast, hLeast) 即可为它加上此功能!

  而且,它可以为任何矩形mc加上此功能,只要将__width改为_width, __height改为 _height,把setSize方法改为_width=......,_height=......就可以了。

  由于此方法需要使用onMouseMove侦听器,并要判断许多数据,所以不宜为过多窗口同时添加此功能,否则会执行比较慢!

 

 

点击这里下载源文件
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有