做电子杂志经常需要做文字滚动和图片滚动,于是我编写了这个代码
可以方便快捷的使用,提高工作效率
我一直都在使用这个代码,比较实用,希望大家也喜欢

使用方法:

做两个按钮做滚动:up_btn,down_btn
做遮罩定下显示的范围:mask_mc
移动的mc:move_mc
把代码贴上去就OK!!

我整理了一下,与大家分享
会上传该fla文件,同时贴上脚本:

设置代码

/*
program    : hqlulu
mail    : hqlulu@163.com
website    : http://www.aslibra.com
publish    : 2006-10-31
*/
//判断是否移动
var move_it:Boolean = false;
//移动方向
var dir:Number = 1;
//移动速度
var speed:Number = 5;
//按下的移动速度加倍
var scale:Number = 3;
//滚轮的移动速度加倍
var scale_mouse:Number = 2;
//设置上下的边距
var margin:Number = 2;
//计算移动的范围
var max1:Number = mask_mc._y+margin;
var min1:Number = mask_mc._y-move_mc._height+mask_mc._height-margin;
//是否自动设置遮罩
var is_set_mask:Boolean = false;
//是否支持鼠标
var is_mouse_enable:Boolean = true;
//设置按钮、遮罩和移动的对象
var my_move_mc:MovieClip = move_mc;
var my_up_btn:Button = up_btn;
var my_down_btn:Button = down_btn;
var my_mask_mc:MovieClip = mask_mc;


脚本代码:

//自动调整遮罩的xy和宽
if (is_set_mask) {
   my_mask_mc._x = my_move_mc._x;
   my_mask_mc._y = my_move_mc._y;
   my_mask_mc._width = my_move_mc._width;
   my_move_mc.setMask(my_mask_mc);
}
//支持滚轮移动  
if (is_mouse_enable) {
   var mouseListener:Object = new Object();
   mouseListener.onMouseWheel = function(delta) {
       if (delta>0) {
           my_dir = 1;
       } else {
           my_dir = -1;
       }
       speed *= scale_mouse*scale;
       move_me();
       speed /= scale_mouse*scale;
   };
   Mouse.addListener(mouseListener);
}
//给向上的按钮赋予事件            
my_up_btn.onRollOver = function() {
   move_it = true;
   my_dir = 1;
};
my_up_btn.onRollOut = function() {
   move_it = false;
};
my_up_btn.onPress = function() {
   speed *= scale;
};
my_up_btn.onRelease = function() {
   speed /= scale;
};
my_up_btn.onReleaseOutside = function() {
   speed /= scale;
   move_it = false;
};
//给向下的按钮赋予事件            
my_down_btn.onRollOver = function() {
   move_it = true;
   my_dir = -1;
};
my_down_btn.onRollOut = function() {
   move_it = false;
};
my_down_btn.onPress = function() {
   speed *= scale;
};
my_down_btn.onRelease = function() {
   speed /= scale;
};
my_down_btn.onReleaseOutside = function() {
   speed /= scale;
   move_it = false;
};
//判断是否该移动            
my_move_mc.onEnterFrame = function() {
   if (move_it) {
       move_me();
   }
};
//移动mc            
function move_me() {
   if ((my_move_mc._y+my_dir*speed)>max1) {
       my_move_mc._y = max1;
   } else {
       if ((my_move_mc._y+my_dir*speed)<min1) {
           my_move_mc._y = min1;
       } else {
           my_move_mc._y += my_dir*speed;
       }
   }
}


下载源文件:up/1162346304.rar


原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
无水深潭
2009/12/09 23:26
太好了,我是一个电子杂志发烧友(业余的),看过你写的代码,太棒了!
hqlulu 回复于 2009/12/10 08:56
谢谢,几年前的代码了,都没有什么后期维护
walihan Homepage Email
2009/03/06 19:13
谢谢你zan
我找了很久才找到。。。
把那个move_mc 转换文本为什么不运行
hqlulu 回复于 2009/03/07 09:02
代码很久了,我都现在没法再琢磨
你还是自己试试琢磨一下好了
bxjbxj
2007/04/12 14:04
非常感谢,我找了好久才找到
hqlulu 回复于 2007/04/12 14:21
不客气
本人偶尔也写一些flash代码,写的不好还希望提提意见
lx
2007/01/02 11:31
谢谢了~~找了很久。。这下不用自己写了。。envyflower
hqlulu 回复于 2007/01/02 14:22
不客气 :)
anne
2006/12/20 09:12
我想做文字的遮照,就是字不清楚,我要象网页上的字那样清楚,用动态文本又不行,请赐教,谢谢flower
hqlulu 回复于 2006/12/20 10:18
这个主要是控制文字的xy的问题,有如下关系:如果文字的坐标不是整数的话,那就可能出现模糊。

一般是在控制xy的坐标的时候做一个取整:
my_move_mc._y = max1;
可以改为:
my_move_mc._y = int(max1);

但也要确保是针对主场景是整数,如果还包含在mc内,那需要确保该mc为整数xy,另外也可以通过运算来处理这个关系的,就复杂了些。
anne
2006/12/19 08:39
源文件打不开的cry
hqlulu 回复于 2006/12/19 09:37
请检查一下是否下载完整,再试试下载
anne
2006/12/19 08:36
谢谢,太好了flower
zero
2006/11/01 13:38
十分感谢~!shy
2006/11/01 13:22
波一个pig
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemotemotemotemotemotemotemotemotemot
emotemotemotemotemotemotemotemotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写
 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐