Flash实现用鼠标调整窗口的大小

鼠标

  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侦听器,并要判断许多数据,所以不宜为过多窗口同时添加此功能,否则会执行比较慢!

时间: 2024-10-08 05:23:57

Flash实现用鼠标调整窗口的大小的相关文章

flash实例-打造鼠标触发火焰特效

本教程为大家介绍使用Flash CS5制作鼠标触发的焰火飘落互动特效,主要是用计算鼠标跟随对象来产生具有一定规律的星火特效. 思路:导入背景素材,然后制作出焰火飘落特效.创建文档类,产生鼠标跟随的多角星形特效;创建元件类的扩展类,产生随机大小的火花效果. 用鼠标在画面上划过,即可看到绚丽的互动特效 一. 制作焰火飘落特效 (1)新建一个大小为500×300像素,帧频为30fps的空白文档.按Ctrl+R组合键导入西湖夜景.jpg"文件,然后设置其坐标为(0,0),如图1所示,再采用前面的方法在&

Flash MX让鼠标指针闪起来

大家在欣赏Flash的时候,常常会在一些动画中发现,把鼠标指针放入画面内就会变成有趣的动画指针,而且形状还会随着你的移动.点击等动作发生变化.其实这种效果并不难实现,今天我们就来看一个这样的例子. 实例效果: 动画开始播放时,鼠标指针是一个大小不停变化的箭头;当移动到物体上的时候,显示为手形;在物体上按下鼠标左键的时候,变成"握拳"形;松开左键后再恢复为手形(如图1). 图1 鼠标指针的三种样式 制作步骤: 1.我们先来制作本例需要的一些按钮(Button)和影片(MovieClip)

Javascript实例教程(14) 鼠标触发窗口

javascript|教程 利用javascript产生鼠标移过时弹出窗口 本节教程将介绍当鼠标移过图片的时候弹出一个窗口的设计.这个弹出的窗口是一个标准的网页,你可以设置它的大小. 首先在网页的Header标签处加入以下代码: <SCRIPT LANGUAGE="javascript"> var popupwindow_window = null; function popupwindow(status,url) { if(status != 0) { if(popupw

Javascript实例教程(13) 鼠标触发窗口

利用Javascript产生鼠标移过时弹出窗口 本节教程将介绍当鼠标移过图片的时候弹出一个窗口的设计.这个弹出的窗口是一个标准的网页,你可以设置它的大小. 首先在网页的Header标签处加入以下代码: <SCRIPT LANGUAGE="Javascript"> var popupwindow_window = null; function popupwindow(status,url) { if(status != 0) { if(popupwindow != null)

用FLASH AS实现鼠标画圆的效果

鼠标 在FLASH或PHOTOSHOP中能够很轻松的画出一个圆或者椭圆,怎样做一个作品,让用户可以直接在里面拖动鼠标画出一个圆或者椭圆来呢?下面是BreakDS用AS实现这个效果的讲解-- 预览: 一.基本定义:虽然说不说大家都清楚,但是我还是想讲一下,以免一些人忘得差不多了-- 圆:平面上到定点距离等于定长的点的轨迹.椭圆:平面上到两定点距离和等于定长(定长大于两定点间距离)的点的轨迹. 二.问题描述:画圆和椭圆,使用AS. 三.问题分析: 1.圆呵呵,大多数人看到后肯定想:哼-这不简单,不就

Win7系统如何修改任务栏预览窗口的大小?

  Win7怎么修改预览窗口的大小呢?我们一起来看看. Win7系统任务栏预览窗口大小设置方法 1.按WIN+R组合键,打开运行对话框,然后输入"regedit"并且回车; 2.进入注册表编辑器中,打开注册表编辑器后打开"HKEY_CURRENT_USER"文件夹,接着依次打开"Software-Microsoft-Windows-CurrentVersion-Explorer--Taskband"文件夹,如下图所示: 3.然后选中"T

怎么样设置win7预览窗口的大小

实用win7系统,如果我们要查找某个我们已经打开的文件,都是通过把鼠标移到改软件在任务栏的小图标,然后任务栏会自动在上面显示所有该软件的窗口,然后通过预览窗口我们可以找到我们想要的窗口是那个.如果你感觉预览窗口太小了,或者你想知道那个地方可以修改预览窗口的大小,那么请看下面内容. 1 进入注册表 点击开始,在搜索框里面输入regedit,按下回车键或者确定. 2 定位到:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorer

如何调整桌面图标大小?

  一.windows xp恢复电脑桌面图标大小: 在电脑桌面图标没图标有文字怎么办上面就有可以调整桌面图标的大小,你可以参考上面的步骤来执行,恢复你的桌面图标的原始大小.右键单击--属性--外观,点击高级,项目选择图标,在大小里更改.如下图所示: 二.win7操作系统调整分辨率来恢复电脑桌面图标大小: 在win7的桌面上右击鼠标右键弹出一个对话框,然后选择"屏幕分辨率".如图所示: 当你的屏幕分辨率很大,那说明你的电脑桌面图标就会更小,反之,你的屏幕分辨率是800*600的话,那显而

窗口的大小如何设置

  可能很多朋友都不知道的一件事那就是其实窗口的大小是可以设置的,那么到底要如何设置呢?其实方法非常的简单,今天我就教大家一个方法,这个方法可以解决你所遇到的问题,首先大家一定要把我所说的全部看完之后才知道具体怎么操作,首先你要在桌面空白的地方点击鼠标右键选择属性,然后在弹出的显示属性窗口中选择外观下的高级选项,然后在高级外观窗口的项目中选择标题按钮大小设置为23这个数值,而23是标准设置你可以根据自己的要求自定义就可以了.