大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 网络媒体 -> FLASH -> Flash5创建连波效果

Flash5创建连波效果

时间: 2021-07-31 作者:daque

功效刻画:连波功效是指一串东西(不妨是笔墨也不妨是按钮大概图片之类其余东西)。当鼠标挪动到涵盖东西的范畴内的功夫,使每个东西由于与鼠标隔绝各别而爆发相映的通明度和巨细的各别变革。而当鼠标挪动到范畴外的功夫,一切的东西都回复到从来的状况。

flash5创建连波效果图1

鼠标挪动的功夫东西相映的变革简直的实行办法重要构造:在主场景戏台,咱们兴建一个movie clip(mc)——定名为叫“01-boundingbox”,在帧1上抄写少许actions。

flash5创建连波效果图2

那些actions的手段是为了控制mc的巨细。如许咱们的mc就不会由于运用者的报酬自决夸大减少而变换了巨细,免得形成不需要的凌乱。fscommand ("fullscreen", "false");//遏止全屏fscommand ("allowscale", "false");//遏止比率缩放stop ();接下来咱们看mc。

flash5创建连波效果图3

在“01-boundingbox”这个mc里,你不妨看到有三个层。第一层dragscale是鼠标定位mc以及action;第二层text是东西;第三层bounding box是敏锐相应范畴。第二层里的东西即是一个mc——名字叫“column1”。第一层里的mc——名字叫“dragscale”即是一个空的mc(帧内是stop()),咱们在这个mc的层的帧上写:startdrag ("dragscale", true);//把这个空mc重心锁定在鼠标上,如许不妨经过mc获得鼠标场所。咱们在本例子中须要获得鼠标和东西的隔绝,以是有这个空的mc,会简单很多。接下来咱们再来看看第二层text里的东西mc——“column1”。

flash5创建连波效果图4

这个mc里不妨看到重要的action在第二帧里;第三帧不过大略地归来第二帧再不第二帧的action不妨轮回。gotoandplay (2);即使你提防看会创造这个mc里除去第一层的action语句外,接下来即是19个独立的层,每层都放了一个东西(固然,你不妨放更多的东西,也不妨缩小局部东西)那些东西是少许实质为笔墨的mc,范例名字辨别为text1~text19接下来咱们来提防接洽重要的实行语句局部。在action层的第二帧咱们不妨看到如次action:设置情况colnum = "1";//简单的字符startnum = 1;//开始东西1endnum = 19;//中断东西19numberofitems = 19;//东西个数为19mouseposx = getproperty("../dragscale", _x);//获得上司目次中dragscale这个鼠标定位mc的x轴数值mouseposy = getproperty("../dragscale", _y); //获得上司目次中dragscale这个鼠标定位mc的y轴数值i = startnum;m = startnum;filledspactione = 0;gapspace = 0;if (myinit == false) {// 获得一切东西的y轴数值while (i<= endnum) {set ("texty" add i, getproperty ("text" add i, _y ) );i ++;}i = startnum;myinit = true;}boundleft = getproperty ("../boundbox" add colnum, _x);boundright = boundleft + getproperty ("../boundbox" add colnum, _width) ;boundtop = getproperty ("../boundbox" add colnum, _y);boundbottom = boundtop + getproperty ("../boundbox" add colnum,_height);第一个变量colnum是个大略的数字罢了。扶助咱们获得mc“column1”和mc“boundbox1”的名字罢了。接下来的三个变量是东西个数的开始和中断数字(“startnum”,“endnum”和“numberofitems”)。咱们用“mouseposx”和“mouseposy”来寄存鼠目标定位x和y。因为咱们须要设置一切东西的场所以是这个是一个轮回,为了计划如许一个轮回以是咱们运用了计数变量“i”和“m”。结果,咱们初始化了两个变量:“filledspace”和“gapspace”,对于这两个变量咱们将在反面简直计划。咱们须要一切的东西的原始场所,以是咱们必需创造一个数组来寄存那些原始场所的值。当咱们把一切的场所寄存结束后,就要初始化“i”的值再不此后的运用。其余咱们要决定那些action只在第一次实行,以是咱们设定“myinit”这个变量,在实行语句后使它为真,由于咱们在首先实行定位的语句只在这个变量为假的功夫实行。由于咱们有个敏锐相应的范畴须要设置,以是咱们也设定了四个变量:“boundleft”,“boundright”,“boundtop”和“boundbottom”。经过语句咱们不妨获得所有boundbox1的左右安排的范围进而获得范畴。获得情况的数据此后,咱们不妨让flash领会两种不一律的情景:第一,鼠标在范畴内;第二,鼠标不在范畴内。实行进程:if ((mouseposx>=boundleft) and (mouseposx<=boundright) and (mouseposy>= boundtop) and (mouseposy<= boundbottom)) {while (i<= endnum) {mydif = (eval("texty" add i) ) - (mouseposy - boundtop);// percentage increasescaleamount = 250-((mydif*mydif)/16);alphaamount = 100-((mydif*mydif)/6);if (alphaamount<50) {alphaamount = 50;}if (scaleamount<100) {scaleamount = 100;}setproperty ("text" add i, _xscale, scaleamount);setproperty ("text" add i, _yscale, scaleamount);setproperty ("text" add i, _alpha, alphaamount);i ++;}// 一切的笔墨东西的莫大while (m<= endnum-1) {filledspace = filledspace + getproperty ( "text" add m, _height);m++;}//所有莫大 totalheight = getproperty ( "text" add endnum, _y) - getproperty ( "text" add startnum, _y);gapspace = totalheight-filledspace;//获得中央间隙的所有莫大avgdistance = gapspace/numberofitems;m=startnum+1;while (m<= endnum-1) {setproperty ("text" add m, _y, (getproperty ( "text" add (m-1), _y) + getproperty ( "text" add (m-1), _height)) + avgdistance);m ++;}}这个进程,开始决定鼠标能否在相应地区中。即使是的,就计划每个东西和鼠标之间的隔绝。在轮回里,咱们先计划鼠标y轴到上范围的隔绝,而后再计划东西和鼠目标隔绝。这个是由于咱们的鼠标定位mc和东西不在同一个level里。咱们必需如许计划,只有上范围为0,那么咱们才不妨让两者径直相减。咱们计划得出的是鼠标和东西的笔直最短隔绝。也即是说鼠标和东西的y轴的最短隔绝。咱们获得东西和鼠目标隔绝此后(咱们把这个隔绝值给了变量“mydif”),咱们经过mydif来遏制scaleamount和alphaamount的值。咱们不妨创造这两个值在过程表白式赋值此后它们的巨细就看mydif这个值的变革了。即使mydif即是0,则scaleamount的值就到达最大为250。跟着mydif的增大,则渐渐减小。alphaamount也是一律的变革进程。scaleamount和alphaamount都设定了最小范围:100和50,以是咱们不妨领会scaleamount是在250到100之间范畴变革,而alphaamount则在100到50之间变革。而后用setproperty来运用那些值变换东西。结果,咱们须要从新树立东西之间的隔绝。由于那些东西的巨细变革了此后场所须要从新树立过。咱们来计划其余一种情景——归来原始状况:这即是两种情景里的其余一种情景:鼠标摆脱了敏锐相应地区功夫咱们须要让东西的一切变革复位。那么就来看一下代码:else {//鼠标摆脱相应地区功夫的情景 i = startnum;while (i<= endnum) {if (getproperty ("text" add i, _yscale ) >= 100) {// 但凡创造东西有变革的都恢恢复状,渐渐回复,历次回复1setproperty ("text" add i, _yscale, int ( getproperty ("text" add i, _xscale ) ) - 1);setproperty ("text" add i, _xscale, int ( getproperty ("text" add i, _yscale ) ) -1);}if ( getproperty ("text" add i, _y) < eval("texty" add i)) {// 但凡创造定位有变革的十足回复,历次回复1setproperty ("text" add i, _y, int ( getproperty ("text" add i, _y ) ) + 1);}if ( getproperty ("text" add i, _y) > eval("texty" add i)) {setproperty ("text" add i, _y, int ( getproperty ("text" add i, _y ) ) - 1);}if ( getproperty ("text" add i, _alpha) > 50) {//但凡创造通明度有变革的十足回复,历次回复1setproperty ("text" add i, _alpha, getproperty ("text" add i, _alpha ) - 1);}i ++;}}扩充功效:即使要创造多个如许的相应地区,那么咱们不妨设定colnum的范畴。而后举行轮回操纵便不妨了。即是说boundbox1~boundboxn;column1~columnn。

flash5创建连波效果图5

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.