主要涉及的语法:
1.loadMovie("url",level/target[, variables])
url 要加载的 SWF 文件或 JPEG 文件的绝对或相对 URL。相对路径必须相对于级别 0 处的 SWF 文件。该 URL 必须与影片当前驻留的 URL 在同一子域。为了在 Flash Player 中使用 SWF 文件或在 Flash 创作应用程序的测试模式下测试 SWF 文件,必须将所有的 SWF 文件存储在同一文件夹中,而且其文件名不能包含文件夹或磁盘驱动器说明。
target 指向目标影片剪辑的路径。目标影片剪辑将替换为加载的影片或图像。只能指定 target 影片剪辑或目标影片的 level 这两者之一;而不能同时指定两者。
level 一个整数,指定 Flash Player 中影片将被加载到的级别。在将影片或图像加载到级别时,标准模式下“动作”面板中的 loadMovie 动作将切换为 loadMovieNum;在专家模式下,您必须指定 loadMovieNum 或从“动作”工具箱中选择它。
variables 一个可选参数,指定发送变量所使用的 HTTP 方法。该参数须是字符串 GET 或 POST。如没有要发送的变量,则省略此参数。GET 方法将变量追加到 URL 的末尾,该方法用于发送少量变量。POST 方法在单独的 HTTP 标头中发送变量,该方法用于发送长的变量字符串。
2. with (object) {statement(s);}
object 动作脚本对象或影片剪辑的实例。
statement(s) 花括号中包含的动作或一组动作
3. startDrag(target,[lock ,left ,top ,right,bottom])
target 要拖动的影片剪辑的目标路径。
lock 一个布尔值,指定可拖动影片剪辑是锁定到鼠标位置中央 (true),还是锁定到用户首次点击该影片剪辑的位置上 (false)。此参数是可选的。
left、top、right、bottom 相对于影片剪辑父级坐标的值,这些坐标指定该影片剪辑的约束矩形。这些参数是可选的。
使 target 影片剪辑在影片播放过程中可拖动。一次只能拖动一个影片剪辑。执行 startDrag 动作后,影片剪辑将保持可拖动状态,直到被 stopDrag 动作明确停止为止,或者直到为其他影片剪辑调用了 startDrag 动作为止。
一.点击CD盒子弹出菜单的制作步骤:
(图1)
首先,我们要将屋子里面的物品全部放到位,如(图1)
接下来,制作椅子上的CD盒弹(图2)出菜单效果
图(2)
要实现鼠标点击此CD盒的时候,谈出CD歌曲的菜单。
1.首先将CD盒画好。转换成影片剪辑,先搁在一边不管
2.然后制作CD菜单,将菜单处理漂亮之后同样转换成影片剪辑,实例名命名为“ez2”,之后把此影片剪辑第一帧留为空白帧。将制作好的菜单放在第110帧(为什么放在第110帧:此影片剪辑包括了“我的音乐间”所有的菜单,所以110帧以前留空是为了放别的菜单)
3. 在第一空白帧处加入动作脚本stop();
在菜单显示的那一帧也加上stop();
在此帧另外加一个返回的按钮,按钮脚本为:gotoAndPlay(1);
//回到第一帧,达到关闭此菜单的效果
这时影片剪辑在主场景中显示一个白点
4.接下来我们再回过头编辑“DEEP SOLO CD“影片剪辑,在此影片剪辑中新建一个图层命名为“按忸如(图3)
(图3)
5. 制作一个橘红色的按牛放在按钮层,并且覆盖在CD盒之上如(图4)
(图4)
在按钮上添加动作脚本:
on (release) {with (_root.ez2) {gotoAndPlay(110);}}
//当鼠标点击此按钮的时候 指定实例名为“ez2”的影片剪辑跳到代110帧并运行
将按钮属性设置成“Alpha”为“0”(图4 -1) 这样就成了透明状态,什么都看不到了
(图4-1)
6.好了,一个点击CD盒弹出菜单的效果就做好了。可以试一下效果了
大家发现在原文件中,点击CD盒子的时候会弹出CD菜单,还有一个可拖动的空白的小窗口(图5),这就是播放音乐时候的内容显示窗口。这个窗口也是一个单独的影片剪辑,是用来加载外部的SWF音乐和画面的,下面就来制作这一部分,实现加载外部SWF文件
(图5)
制作可拖动的显示窗口的影片剪辑
1.先画好适当大小的白色方块,转换成影片剪辑,我把它实例名命名为“wbbf”,编辑此剪辑。建立三个图层分别为“加载影片窗口”,“关闭窗口”,“拖拽按钮”(图6)
2.同样空出第一帧为空白帧加上动作脚本stop();第二帧也加上stop();
3.第2帧处再制作一按钮,放在“拖拽按忸”层(用来拖拽)
在此按钮上加入动作脚本:
on (press) {startDrag("_root.wbbf");}
//当鼠标按下按钮的时候实现拖拽效果
on (dragOut) {stopDrag();}
//当鼠标移开按钮的时候停止拖拽
4.“关闭按钮”层 放一个返回按钮 按钮脚本:gotoAndPlay(1);
//回到第一帧,达到关闭此窗口的效果
5. 在“加载影片窗口”层,我们把先前画的白色方块再转换成影片剪辑实例名命名为“dxx”(图7)
(图6)
(图7)
5.回到主场景看一下,这个剪辑也是显示的白色圆点,右键点击白色圆点加入动作脚本:onClipEvent (enterFrame) {
if (_x>500) {
setProperty(this, _x, "435.1");
setProperty(this, _y, "111.1");
}
//当此剪辑的x轴大于500的时候,将此剪辑放置在x坐标为453.1 ,y坐标为111.1的地方(窗口出现的原始位置)
if ( _x<0) {
setProperty(this, _x, "435.1");
setProperty(this, _y, "111.1");
}
//当此剪辑的x轴小于0的时候,将此剪辑放置在x坐标为453.1 ,y坐标为111.1的地方(窗口出现的原始位置)
if (_y>300) {
setProperty(this, _x, "435.1");
setProperty(this, _y, "111.1");
}
//当此剪辑的y轴大于300的时候,将此剪辑放置在x坐标为453.1 ,y坐标为111.1的地方(窗口出现的原始位置)
if (_y<100) {
setProperty(this, _x, "435.1");
setProperty(this, _y, "111.1");
}
//当此剪辑的y轴小于100的时候,将此剪辑放置在x坐标为453.1 ,y坐标为111.1的地方(窗口出现的原始位置)
}
onClipEvent (mouseUp) {
stopDrag();
}
//当鼠标放开的时候停止拖拽
上面的脚本是为了不让显示窗口拖出屏幕外
好了,显示窗口制作完毕,下面就要做加载部分拉,如何加载外部发SWF文件到此窗口呢?
1.编辑先前做的菜单,菜单内部应该在分三个图层:“文字”,“按钮”,“背景图”三层,文字层也就是CD的歌名,按钮层放在文字层下方,每首歌的歌名下面各放一个隐形按钮
2.我们就拿第一首歌“INTRO/0:43”做个例子(图8)
(图8)
在此歌名下面的按钮上加入动作脚本:
on (release) {
with (_root.wbbf) {
gotoAndStop(2);
}
//当鼠标点击此按钮的时候,指定实例名为“wbbf”的影片剪辑(刚才做的显示窗口)
跳到第2帧并且停止
loadMovie("music/deep/intro.swf", _root.wbbf.dxx);
//加载外部文件 intro.swf 到实例名为“dxx”的影片剪辑(白色方块)
}
“music/deep/intro.swf”是要加载的SWF文件的相对路径。
“_root.”的意思是全局的最上层的意思。
“intro.swf”是事先做好的SWF文件
3.剩下的歌曲要加载的话就按以上方法即可以,只要将每个按钮脚本的加载路径修改一下便可以了。
做到这里就已经CD部分全部完成了。如果想增加CD的话,按照以上步骤就可以再多做几张CD了呵呵。
二.WINDOWS 模拟部分:
另外当你点击桌子上的电脑开关时候会打开屏幕,然后再次点击屏幕的时候会进入WINDOWS模拟的动画(图9)
(图9)
其实这一不分也不很难做,桌子上的电脑是一个影片剪辑,在其内部放如两帧。第一帧是电脑关闭时候的画面,第2帧是电脑打开时候的画面并且在打开的电脑屏幕上在加上一个按钮, 可以来打开模拟WINDOWS的动画。在原文件中 WINDOWS动画的影片剪辑实例名为“winxp”
此部分主要最关键的部分是实现双击打开文件夹,那么如何实现鼠标双击打开文件夹呢?
下面就利用ActionScript来实现
基本的原理是这样的,鼠标按下的时候,记录下时间,鼠标再次按下的时候,再记录下时间,比较两次按下鼠标的间隔时间,如果间隔的时间比较长,就判定为两次单击,间隔时间短的话则判定为双击,从而触发事件
拿原文件中的的一个文件夹做例子(图10)
(图10)
实现效果:当鼠标移动到文件夹上并且可以拖动,当双击此文件夹的时候就进入到此文件夹内部的动画页面
首先在主场景的的第2帧加入鼠标双击检查的代码(图11):
Mouse.doubleClick=function(clickTime){
if (!clickTime) {clickTime = 270;}
if (Mouse.lastClickTime-(Mouse.lastClickTime=getTimer())+clickTime>0) {
return true;
}
};
说明:clickTime是第一次单击与第二次单击的时间差
调用doubleClick()方法的时候,可以通过参数clickTime设置双击的时间,这里设置成值为
270,默认设置是 500 即为 500/1000s=0.5s。
Mouse.lastClickTime是第一次单击的时间
Mouse.lastClickTime=getTime()是第二次单击的时间
两相减,加上clickTime。如果结果大于0 则为双击,返回双击是true的信息
这样检查鼠标双击的代码就完成了。
接下来只要文件夹上加入代码就可以实现效果了。
右键单击文件夹影片,加入动作代码:onClipEvent (mouseDown) {
if (this.hitTest( _root:_xmouse,_root:_ymouse,true )) {
if (mouse.doubleClick()) {
with (_root.winxp) {
gotoAndStop(5);
}
} else {
if (this.hitTest(_root:_xmouse, _root:_ymouse)) {
setProperty(this, _alpha, "50");
startDrag(this);
}
}
}
}
onClipEvent (mouseUp) {
setProperty(this, _alpha, 100);
stopDrag();
}
说明:当鼠标按下(mouseDown)如果此影片剪辑(this),碰到鼠标的X坐标和Y坐标
(_root._xmouse,_root._ymouse)如果检查到鼠标双击(if(mouse doubleClick()),就指定实例名为“winxp”的影片剪辑跳转到第5帧并且停止(第5帧是次文件夹内部的动画页面)
如果鼠标没有双击(else), 如果此影片剪辑(this),碰到鼠标的X坐标和Y坐标,则设置文件夹的属性为半透明状态 (setProperty(this, alpha, "50 “;)
_alpha的值为0是完全透明,值为100时是正常状态
触发拖拽(startDrag(this);)
当鼠标放开的时候(mouseUp)
将文件夹属性设置成正常状态(setProperty(this, alpha, "100” ;)
停止拖拽( stopDrag();)
OK!“我的音乐间“部分所有的关键的地方都已经制作完成了,其他地方的效果,都和以上说的相似了,动手自己做一个试试吧