• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
:皒祗想自私旳占有著袮
.Net Ajax SQLserver Flex UI JS 一样都不能少...
博客园    首页    新随笔    联系   管理    订阅  订阅

与影片剪辑相关的 事件 属性 方法

 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
}
2)在时轴上删除已经用onLoad加载过的my_mc影片剪辑,并执行其他动作:
my_mc.onUnload = function () {
    trace ("onUnload called");
}
3)onMouseDown  onMouseUp  onMouseMove的实例
my_mc.onMouseDown = function () {
    trace ("onMouseMove called");
}
my_mc.onMouseMove = function () {
    trace ("onMouseMove called");
}
//当鼠标在显示界面的任何位置移动时均触发事件,不必经过影片剪辑my_mc
my_mc.onMouseUp = function () {
    trace ("onMouseMove called");
}
4)onKeyDown  onKeyUp
把下面的代码写在帧上,但事先要定义出my_mc影片剪辑,并把它放在主窗口中
my_mc = new Object();
//确认项目
my_mc.onKeyDown = function () {
     trace ("key was pressed");
};
//内容输出
Key.addListener(my_mc);
//加载侦听器

又如:

my_mc = new Object();
//确认项目
my_mc.onKeyUp = function () {
     trace ("key was pressed");
};
//内容输出
Key.addListener(my_mc);
//加载侦听器
5)onKillFocus  onSetFocus不常用,不讲了,我也不会,自己查一查帮助信息吧!
6)onData
symbol_mc.onData = function() {
   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度
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 的两个影片剪辑设置 useHandCursor 属性。对于其中一个实例,该属性设置为 true;对于另一个实例,它设置为 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;
};
文章引用自:
posted @ 2007-11-30 23:17  JoyBin  阅读(831)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3