与影片剪辑相关的 事件 属性 方法
| OnLoad | 当影片剪辑被载入时触发该事件 |
| onUnload | 从时间轴删除影片剪辑时触发该事件 |
| onEnterFrame | 当播放到某个帧时触发该事件,如果没有指定具体的帧,将每隔一帧触发一次该事件 |
| onPress | 在鼠标指针位于上方,按下时触发 |
| onRelease | 在鼠标指针位于上方,释放时触发 |
| onReleaseOutside | 在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放时触发该事件 |
| onMouseDown | 当按下鼠标左键时触发该事件 |
| onMouseMove | 每次移动鼠标时触发该事件 |
| onMouseUp | 当释放鼠标左键时触发该事件 |
| onKeyDown | 当按下按键时触发该事件 |
| onKeyUp | 当释放按键时触发该事件 |
| onKillFocus | 当从按钮移焦点时触发该事件 |
| onSetFocus | 当按钮具有输入焦点时触发该事件 |
| onDragOut | 鼠标指针位于按钮内时按下鼠标左键,然后拖动鼠标到按钮外时触发该事件 |
| onDragOver | 鼠标指针位于按钮内时按下鼠标左键,然后拖动鼠标先到按钮之外,再重新拖动到该按钮上,此时将触发该事件 |
| onRollOver | 当鼠标指针滑过按钮进触发该事件 |
| onRollOut | 当鼠标指针从按钮上滑出到按钮之外时触发该事件 |
| onData | 当所有数据都加载到影片剪辑中时触发该事件 |
以上是有关于影片剪辑的一些事件触动方式,其中onpress onrelease onreleaseoutside ondragout ondragover onrollover onrollout是和按钮相关的一组事件,前面我们已经讲过了,在这里不举实例了,对其他的事件举例如下:
1)onLoad及onEnterEvent
主场景中存在一个叫goo的影片剪辑,然后在影片剪辑上加入如下命令
onClipEvent (load) {
vv=5
}
onClipEvent (enterFrame) {
this._x += vv
}
onClipEvent (enterFrame) {
this._x += vv
}
2)在时轴上删除已经用onLoad加载过的my_mc影片剪辑,并执行其他动作:
my_mc.onUnload = function () {
trace ("onUnload called");
}
trace ("onUnload called");
}
3)onMouseDown onMouseUp onMouseMove的实例
my_mc.onMouseDown = function () {
trace ("onMouseMove called");
}
trace ("onMouseMove called");
}
my_mc.onMouseMove = function () {
trace ("onMouseMove called");
}
trace ("onMouseMove called");
}
//当鼠标在显示界面的任何位置移动时均触发事件,不必经过影片剪辑my_mc
my_mc.onMouseUp = function () {
trace ("onMouseMove called");
}
trace ("onMouseMove called");
}
4)onKeyDown onKeyUp
把下面的代码写在帧上,但事先要定义出my_mc影片剪辑,并把它放在主窗口中
my_mc = new Object();
//确认项目
//确认项目
my_mc.onKeyDown = function () {
trace ("key was pressed");
};
//内容输出
Key.addListener(my_mc);
Key.addListener(my_mc);
//加载侦听器
又如:
my_mc = new Object();
//确认项目
//确认项目
my_mc.onKeyUp = function () {
trace ("key was pressed");
};
//内容输出
Key.addListener(my_mc);
Key.addListener(my_mc);
//加载侦听器
5)onKillFocus onSetFocus不常用,不讲了,我也不会,自己查一查帮助信息吧!
6)onData
symbol_mc.onData = function() {
trace("The movie clip has received data");
}
//当影片剪辑symbol_mc的全部数据被载入到场景中时执行指定代码(输出信息)
trace("The movie clip has received data");
}
//当影片剪辑symbol_mc的全部数据被载入到场景中时执行指定代码(输出信息)
| .alpha | 影片剪辑的透明度 |
| .currentframe | 播放头当前所处帧的编号 |
| .droptarget | 以斜杠语法记号表示的影片剪辑实例的绝对路径 |
| .enabled | 指示按钮影片剪辑是否处于启用状态 |
| .focusEnabled | 使影片剪辑能够接收焦点 |
| ._focusrect | 指示具有焦点的影片剪辑周围是否有黄色矩形 |
| ._framesloaded | SWF文件中已经加载的帧数 |
| ._height | 影片剪辑实例的高度,以像素为单位 |
| ._hitArea | 将另一个影片剪辑指定为影片剪辑的点击区域 |
| ._highquality | 设置SWF文件的显示质量 |
| .menu | 当ContextMenu对象与影片剪辑关联在一起时,显示菜单的方法 |
| ._name | 影片剪辑实例的实例名称 |
| ._parent | 引用上一级影片剪辑 |
| ._rotation | 影片剪辑实例的放置角度 |
| .soundbuftime | 流式声音下载并播放时缓冲的秒数 |
| .tabChildren | 指示影片剪辑的子级是否包含在Tab键的自动排序中 |
| .tabEnabled | 指示某影片剪辑是否包含在Tab键的排序中 |
| .tabIndex | 指示对象的Tab键顺序 |
| ._target | 影片剪辑实例的目标路径 |
| ._totalframes | 影片剪辑实例中的总帧数 |
| .trackAsMenu | 指示其他按钮是否可接收鼠标释放事件 |
| ._url | 影片剪辑所在SWF文件的URL |
| .useHandCursor | 确定当用户滑过按钮时是否显示手形光标 |
| ._visible | 一个布尔值,确定影片剪辑实例是隐藏的还是可见的 |
| ._width | 影片剪辑实例的宽度,以像素为单位 |
| ._x | 影片剪辑实例的X坐标,以像素为单位 |
| ._xmouse | 影片剪辑实例中鼠标指针的X坐标,以像素为单位 |
| ._ymouse | 影片剪辑实例中鼠标指针的Y坐标,以像素为单位 |
| ._xscale | 指定用于水平缩放影片剪辑的百分比值 |
| ._yscale | 指定用于垂直缩放影片剪辑的百分比值 |
| ._y | 影片剪辑实例的Y坐标,以像素为单位 |
以上是与影片剪辑相关的诸多属性,有一些内容可参看以下程序:
1)_alpha的实例
mc_m1.onEnterFrame=function(){
mc_m1._alpha=0;
}//影片剪辑mc_m1在场景中的显示透明度为0,即不可见。
2)下面的示例使用
_currentframe 属性指示 actionClip_mc 影片剪辑的播放头从其当前位置前进 5 帧:我们把驱动代码写在一个按钮上,如下:on(release){
Clip_mc.gotoAndStop(Clip_mc._currentframe + 5);
}
3)enabled的应用实例
下面的示例演示如何禁用和启用按钮单击。在舞台上放两个按钮(
myBtn1_btn 和 myBtn2_btn),并添加以下 ActionScript,以便无法单击 myBtn2_btn 按钮。首先,在舞台上添加两个按钮实例。然后,分别为它们指定实例名称 myBtn1_btn 和 myBtn2_btn。最后,将以下代码放在第 1 帧上以启用或禁用按钮。myBtn1_btn.enabled = true; myBtn2_btn.enabled = false; //button code // the following function will not get called // because myBtn2_btn.enabled was set to false myBtn1_btn.onRelease = function() { trace( "you clicked : " + this._name ); }; myBtn2_btn.onRelease = function() { trace( "you clicked : " + this._name ); };/*该程序的功效是:按myBtn1_btn时会在输出面板输出内容,但按myBtn2_btn时不会有任何的反应。注意,按钮是属于影片剪辑的,所以任何影片剪辑也可以采用本法。*/
4)_framesloaded应用实例
if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } 解释:._framesloaded属性一般用于SWF下载时的进度把握,表示的是当前正在下载过程中已经下载的帧数,因而它是随时变化的。而_totalframes则表示的是SWF文件的整体大小,二者的比较便形成了程序的自动判断与成功且的跳转。
5)_height应用实例
myBitmapData.height = 999;
trace(myBitmapData.height); // 80
这段代码的意思是:设定影片剪辑myBitmapData的高度为999个像素,并输出。
6)hitArea应用实例 下面的示例将circle_mc影片剪辑设置为square_mc影片剪辑的点击区域。将这两个影片剪辑放在舞台上并测试文档。当您单击circle_mc时,square_mc影片剪辑会对它已被单击进行跟踪。
square_mc.hitArea = circle_mc; square_mc.onRelease = function() { trace("hit! "+this._name); };
您也可以将circle_mc影片剪辑的visible属性设置为false,以隐藏square_mc的点击区域。
circle_mc._visible = false;
这是程序就变成了:
square_mc.hitArea = circle_mc;
circle_mc._visible = false;
square_mc.onRelease = function() {
trace("hit! "+this._name);
};
7)menu应用实例见如何编写flash的右键菜单这一实例
8)_name应用实例
制作一个影片剪辑aa,并拖放到场景当中去,在第一帧输入以下代码
trace(aa._name);
则,会在输出面板当中输出该影片剪辑的名称为:aa.
9)_rotation应用实例:在flash主场景的第一帧处输入以来代码:
this.createEmptyMovieClip("triangle", this.getNextHighestDepth());
//建立影片剪辑triangle,并使其处于最高层(即前端显示)
triangle.beginFill(0x0000FF, 100);
triangle.moveTo(100, 100);
triangle.lineTo(100, 150);
triangle.lineTo(150, 100);
triangle.lineTo(100, 100);
//绘制影片剪辑triangle的内容为一个三角形,并进行了颜色填充
triangle.onMouseUp= function() {
this._rotation += 15;
};//每按钮一次鼠标左键该小方块就相对其中心旋转15度
this._rotation += 15;
};//每按钮一次鼠标左键该小方块就相对其中心旋转15度
10)_soundbuftime应用实例
下面的示例先对 MP3 文件进行流式处理并缓冲声音,然后再为用户进行播放。在运行时会创建两个文本字段以保存计时器和调试信息。_soundbuftime 属性设置为将 MP3 缓冲 10 秒钟。将会为该 MP3 创建一个新的 Sound 对象实例。
// create text fields to hold debug information.
this.createTextField("counter_txt", this.getNextHighestDepth(), 0, 0, 100, 22);
this.createTextField("debug_txt", this.getNextHighestDepth(), 0, 20, 100, 22);
// set the sound buffer to 10 seconds.
_soundbuftime = 10;
// create the new sound object instance.
var bg_sound:Sound = new Sound();
// load the MP3 sound file and set streaming to true.
bg_sound.loadSound("yourSound.mp3", true);
// function is triggered when the song finishes loading.
bg_sound.onLoad = function() {
debug_txt.text = "sound loaded";
};
debug_txt.text = "sound init";
function updateCounter() {
counter_txt.text++;
}
counter_txt.text = 0;
setInterval(updateCounter, 1000);
11)_totalframes的应用实例
if (this._framesloaded < this._totalframes) { this.gotoAndPlay(1); } else { this.gotoAndStop(3); } 12).trackAsMenu应用实例:
下面的示例为舞台上的三个影片剪辑(myMC1_mc、myMC2_mc、myMC3_mc)设置属性。单击任意一个影片剪辑并在任意其它影片剪辑上释放鼠标按钮,以查看哪个实例接收事件。trackAsMenu
myMC1_mc.trackAsMenu = true; myMC2_mc.trackAsMenu = true; myMC3_mc.trackAsMenu = false; myMC1_mc.onRelease = clickMC; myMC2_mc.onRelease = clickMC; myMC3_mc.onRelease = clickMC; function clickMC() { trace("you clicked the "+this._name+" movie clip."); }; //这时因为我们把myMC3_mc设置为false了,则当前两个影片剪辑按下鼠标并拖动到myMC3_mc上时释放,不会输出。而如果拖到前两个影片剪辑当中的任何一个时都会有响应。
13)_url应用实例(不常用)
trace("_url: "+target_mc._url);
//表示输出target_mc中图片的来源地址,当然前提是target_mc中的图片是被载入进来的。
14)useHandCursor应用实例
下面的示例为名为myMC1_mc和myMC2_mc的两个影片剪辑设置属性。对于其中一个实例,该属性设置为useHandCursortrue;对于另一个实例,它设置为false。请注意这两个实例如何仍能接收事件。
myMC1_mc.onRelease = traceMC;
myMC2_mc.onRelease = traceMC;
myMC2_mc.useHandCursor = false;
function traceMC() {
trace("you clicked: "+this._name);
};
//这样一来,当鼠标经过myMC1_mc时会是手形,而经过myMC2_mc时不会显示手形,但并不影响对该影片剪辑的操作。
15)_visible应用实例:
这里指主场景中有两个影片剪辑分别为myMC1_mc、myMC2_mc,不点击时都是可见的,当点击第一个影片剪辑和第二个影片剪辑时的效果是一样的,即都消失了,但原理是不同的,第一个用了this._visible = false;语句,表示该影片剪辑不仅不显示了,而且功能也被禁用。而第二个影片剪辑是通过设置alphal的方式使其消失,但并不影响对该影片剪辑的操作,当鼠标移至该影片剪辑之上时依就显示为手形,而且可操作。
myMC1_mc.onRelease = function() {
trace(this._name+"._visible = false");
this._visible = false;
};
myMC2_mc.onRelease = function() {
trace(this._name+"._alpha = 0");
this._alpha = 0;
};
16)_x、_y表示的是影片剪辑的x、y坐标,这里不说了,很简单。
17)_xmouse、_ymouse指影片剪辑中鼠标x、y的横纵坐标。
18)_xacale、_yscale指定水平垂直缩放的百分比
//动态创建一个影片剪辑,当鼠标移到其上时放大一倍,移出影片剪辑时变回原样。
this.createEmptyMovieClip("box_mc", 1);
box_mc._x = 100;
box_mc._y = 100;
with (box_mc) {
lineStyle(1, 0xCCCCCC);
beginFill(0xEEEEEE);
moveTo(0, 0);
lineTo(80, 0);
lineTo(80, 60);
lineTo(0, 60);
lineTo(0, 0);
endFill();
};
box_mc.onRollOver = function() {
this._x -= this._width/2;
this._y -= this._height/2;
this._xscale = 200;
this._yscale = 200;
};
box_mc.onRollOut = function() {
this._xscale = 100;
this._yscale = 100;
this._x += this._width/2;
this._y += this._height/2;
};
浙公网安备 33010602011771号