enterFrame 事件在影片每次播放到影片剪辑所在帧 时发生。如果主时间轴中只有一帧,且不论它是否在该帧停止,该帧中的影片剪辑都会不 断触发 enterFrame事件,且触发的频率与 Flash影片的帧频一致。
如何实现MC的倒着播放:
onClipEvent (load) {
gotoAndStop(20);
}
onClipEvent (enterFrame) {
prevFrame();
}
yuan的第一帧:gotoAndStop(20);
flash中的中括号的作用:["roll"+i]
_root.roll2.prevFrame();
或者使用方括号表示如下:
_root["roll2"].prevFrame();
通过调整影片剪辑的各种属性可以改变影片剪辑的位置和显示状态。 _x和_y属性代表影片剪辑在场
景中的水平坐标和垂直坐标。_xscale和_width属性决定影片剪辑在水平方向上的显示宽度,_yscale和
_height属性决定影片剪辑在垂直方向上的显示高度。使用_rotation属性可以旋转影片剪辑。_alpha属
性代表影片剪辑的透明度,_visible属性决定影片剪辑是否可见。使用关键字_xmouse和_ymouse可以获
取鼠标光标在屏幕中的坐标位置。
下面代码可以实现鼠标跟随:
onClipEvent (enterFrame) {
_x = _root._xmouse;
_y = _root._ymouse; }
这个代码是跟随效果与遮罩相结合:
onClipEvent (load) {
xs = _width;
ys = _height;
}
onClipEvent (enterFrame) {
_xscale = 100*(_root._xmouse-_x)/(xs/2);
_yscale = 100*(_root._ymouse-_y)/(ys/2);
}
控制影片剪辑的方法很多,在 ActionScript 中最常用和最有用的命令是 duplicateMovieClip 和
attachMovie,它们用于复制和附加影片剪辑,这两个命令可以实现许多效果,如下雪、棋类、射击游戏
等。
使用hitTest方法可以代替按钮实现人机交互,从这里也可以看出影片剪辑有多么强大的功能。
startDrag和stopDrag用于对影片剪辑进行拖动,它们可以灵活地实现许多有趣的效果。
duplicateMovieClip("parentMC", "childMC", 10);
_root.parentMC._visible = false;
n = 50;
for (i=0; i<n; i++) { duplicateMovieClip("parentMC", "childMC"+i, 10+i);
_root["childMC"+i]._x = 25+10*i;
_root["childMC"+i]._y = 8*i; }
在父影片剪辑中使用 MovieClip.duplicateMovieClip方法如下所示:
onClipEvent (enterFrame) {
this.duplicateMovieClip("childMC", 10);
_root.childMC._x += 150;}
attachMovie("blackchess", "chess1", 100);
n = 50;
for (i=0; i<n; i++) {
removeMovieClip(_root["childMC"+i]);
}
判断哪个影片剪辑被单击
正因为如此,要让影片剪辑像按钮一样准确地响应鼠标动作,就需要判断哪个影片剪
辑被单击。
hitTest 函数专门用来检测两个影片剪辑之间或影片剪辑和某一点之间是否相交。如将
上例影片剪辑中的 ActionScript 改成如下所示:
onClipEvent (mouseUp) {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
gotoAndStop(2);
}
}
以上语句在 mouseUp 事件发生时,判断鼠标位置所在点与当前影片剪辑之间是否相
交,相交时执行命令 gotoAndStop(2)。
--
孙方敬上
我们的blog: http://hnbit.blogspot.com
我们的论坛: http://groups.google.com/group/xy_98/
没有评论:
发表评论