上一篇:门户FLASH网页广告代码全面解析 >>
Flash教程:鼠标调整窗口大小
//随鼠标缩放大小函数
//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;
};
};
};
//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侦听器,并要判断许多数据,所以不宜为过多窗口同时添加此功能,否则会执行比较慢!
点击这里下载源文件
下一篇:门户动态新闻Flash展示效果 >>
相关文章:
- · Photoshop滤镜玩出来的艺术背景特效
- · 巧用Photoshop液化滤镜修改人像照片表情
- · 将风景画PS成壁挂装饰油画
- · Photoshop滤镜绘制中心对称水晶图案
- · Photoshop滤镜打造仿真石墙
- · PhotoShop新花样:画中有画
- · Photoshop高级图层技巧进…
- · PS商业应用实战:网站首页…
- · PS制作水晶玻璃瓶
- · Photoshop图层效果和样式…
- · PS商业应用实战:网站首页…
- · Photoshop实现黑客帝国特…
- · Photoshop图层效果和样式…
- · Photoshop高级图层技巧进…
- · 抠图就这三招
- · PS制作钻石鸡心链子(1)
- · AUTHORWARE Xtras的应用
- · AuthorWare中动画使用的技巧
- · Authorware 模块的使用技巧
- · AuthorWare中使用交互的几个注意点
- · Authorware插件帮大忙
- · Adobe Illustrator CS2十大新功能
- · 利用Authorware 6.0同时播放多路声音
- · 控制音乐播放的两招小技巧
- · Authorware实现图片背景透明
- · 用3DSMax制作螺栓和螺母(图…
- · 用3DMax打造“真实”的地球…
- · 用3DSMax创建水蒸汽效果(图…
- · 晶莹剔透用3DSMAX5.0制作水…
- · 3dmax5高级渲染器实例教程(…
- · 3dmax5高级渲染器实例教程(…
- · 3dsmax6热点新功能
- · 3DSMAX让动画有色有声
- · 用3DMAX简单制造真实的水面…
- · 3dmax与firework双剑合壁,…
- · 经典广告案例分析之手机篇 …
- · 不花一分钱收看到凤凰卫视台节目
- · 动画课件制作技巧20 如何在课件中插入Flash播放窗口
