好,书归正传。首先说说效果:当你进入那个Demo的时候,除了中间的是网页链接(这个与我们讨论的无关)之外,还有左右两个按钮。当鼠标经过的时候会分别弹出随机的图片,当鼠标脱离 ++原来的按钮和滑出的随机图片++ 之后,弹出的图片会缩回去。再经过按钮的响应区时,还会弹出随机的图片。
现在简单的说说思路: 我们可以制作一个竖条的MC,拖到主场景里2个。分别命名实例为btn_left和btn_right,这就是我们的两个按钮了,然后分别制作两个弹出框的MC,(只有背景),实例名字分别为f_left和f_right。在MC的第一帧我们都让他们停止,当AS给他们播放的响应的时候,它们才会播放。然后我们导入5张位图,分别定义为5个MC,名字为ypic1,mypic2,mypic3,mypic4,mypic5。 我们打算当鼠标滑入btn_left的时候,播放f_left,让它滑出刚才制作的背景,这都很轻易达到。要害在于弹出背景的同时在背景上附着随机的图片MC,这里我们可以用attachMovie语句实现。因为attachMovie语句需要唯一的id,所以我们背attach的图片要有唯一的id名称。在mypic MC上我们点右键——链接,把第一项和第四项打勾,然后在名字里输入这个唯一的id,为了方便我们就用它默认的原MC名,(但是要记住这个id要改的话,相应的attachMovie也要修改,id才是唯一的标识)。除此以外,attachMovie也需要一个附着的实例名,我们还要在左右滑入滑出的元件上放上这个实例,制作一个空的MC,拖到f_left里的实例就叫做atta_left、右面的就叫做atta_right。这样,随机选择的图片才能附着在我们指定的实例上,这样弹出的部分也算搞定了。 我们再想一下按钮,这个按钮和普通的按钮有什么不同呢?不同点就在于:当图象弹出的时候,按钮的热区从竖条变为整个图象域。知道了这个道理,我们就开始动工了。把按钮的MC加一帧,这一帧我们做一个和图象域等大的透明热区。这样当图象域弹出的时候,鼠标在脱离竖按钮但还在图象域的范围的时候,默认还是没有脱离按钮的热区。
这样我们就可以把第一帧的AS写出来:
AS如下: btn_left.onRollOver=function(){ //function我们定义左MC的功能
f_left.gotoAndPlay(2); //背景伸
btn_left.gotoAndStop(2);//左按钮热区改变
_root.f_left.atta_left.attachMovie("mypic"+random(5),"newpic",1) //伸区随机attach图片
}
btn_left.onRollOut=function(){ //function定义左MC的功能
f_left.gotoAndPlay(11); //背景缩
btn_left.gotoAndStop(1); //左按钮热区改变
}
btn_right.onRollOver=function(){ //function定义的右按钮MC功能
f_right.gotoAndPlay(2); //背景伸
btn_right.gotoAndStop(2); //右按钮热区改变
_root.f_right.atta_right.attachMovie("mypic"+random(5),"newpic",1) //缩区随机attach图片
}
btn_right.onRollOut=function(){ //function定义的右按钮MC功能
f_right.gotoAndPlay(11); //背景缩
btn_right.gotoAndStop(1); //右按钮热区改变
}
btn_left.useHandCursor=false; //左按钮热区不用手形
btn_right.useHandCursor=false; //右按钮热区不用手形 效果如下
[全屏欣赏]
原文件如下: 点击浏览该文件