1、flash影片剪辑控制方法flash影片剪辑控制方法影片剪辑影片剪辑是Flash中最重要的一种元件,对影片剪辑的控制是ActionScript的最重要功能之一。从根本上说,Flash的许多复杂动画效果和交互功能都与影片剪辑的运用密不可分。使用点语法或方括号可以定位影片剪辑。使用方括号时可以使用由变量表示的影片剪辑实例名,这是它相对于点语法的优点。可以用脚本控制影片剪辑的各种动作,也可以在影片剪辑的事件处理函数中控制主时间轴和别的影片剪辑。影片剪辑最重要的两个事件是load和enterFrame。5.1 控制影片剪辑的播放动作设想一个Flash动画,它的主场景中只有一个帧,舞台中只有一个影片剪辑
2、,影片剪辑中并没有ActionScript。如何才能控制影片剪辑的播放动作呢?要控制一个影片剪辑,首先应该为影片剪辑命名。容易混淆的是,库面板中的影片剪辑本身有一个名称,这里要命名的是场景中影片剪辑实例的名称。它们可以相同,也可以不相同。如果你在场景中创建了同样的影片剪辑的多个实例,那么就需要将每个实例以不同的名称命名,才能用ActionScript对每一个实例进行控制。如果不需要对影片剪辑进行控制,也就不需要为影片剪辑的实例命名。从本例文件中,你将看到库面板中只有一个影片剪辑rollmc,场景中创建了一个rollmc的实例。你还可以再从库中拖出若干个rollmc的实例将它们放置到场景中。选中
3、场景中影片剪辑rollmc的实例,打开属性面板,可以看到它被命名为roll,你同时可以看到该影片剪辑原来的名字rollmc,如图5-1所示。你也可以为它指定别的名称,也可以是rollmc,Flash并不会混淆它们之间的区别。此主题相关图片如下:图5-1 为影片剪辑实例命名实例名称可以在程序中用来指代该影片剪辑实例,如果要控制该实例,就需要在脚本中使用该名称。下面,我们就来看看如何通过脚本控制影片剪辑实例roll。分别选中场景中的4个按钮,打开它们的动作面板,查看其中的代码。“STOP”按钮:on (release) roll.stop();单击“STOP”按钮使roll实例停止播放。“PLAY
4、”按钮:on (release) roll.play();单击“PLAY”按钮使roll实例继续播放。“PREV”按钮:on (release) roll.prevFrame();单击“PREV”按钮使roll实例回退一帧并停止。“NEXT”按钮:on (release) roll.nextFrame();单击“NEXT”按钮使roll实例播放一帧并停止。按Ctrl+Enter键测试影片,如图5-2所示。一开始影片剪辑自动播放。单击不同的按钮看看影片剪辑是否执行相应的动作。除了这几种命令,你还可以使用gotoAndStop或gotoAndPlay命令控制影片剪辑跳转到具体的帧,但是在命令前面都
5、需要指定影片剪辑的实例名称。这种方法是在影片剪辑实例所在的层级中控制影片剪辑,如果是在影片剪辑内部,要控制它自身的播放,就可以直接使用stop、play等命令,而不需要指定实例名称。如果你在影片剪辑内部的时间轴中使用了名称roll,Flash会在影片剪辑内部的时间轴中寻找该实例。5.2 定位影片剪辑我们已经了解了如何使用最简单的方法定位一个影片剪辑,即使用影片剪辑的实例名,后面紧跟一个点记号“.”,然后是你想要影片剪辑执行的命令。还有许多方法可以定位影片剪辑。首先,我们来看看如何定位Flash影片中不同层级的对象。Flash影片中最基本的目标层级就是它的主时间轴。可以用关键字_root来表示和
6、定位主时间轴。例如,你要向主时间轴发送一个gotoAndStop命令,可以使用如下所示的语句:_root.gotoAndStop(9);如果这个命令是包含在主时间轴的某一帧上的,则可以省略目标_root。如果这个命令是包含在主时间轴上某个影片剪辑中,需要由影片剪辑来控制它上一级的主时间轴,_root就很有必要了。通常,要定位包含某一对象的上一级对象,可以使用关键字_parent。所以,如果一个影片剪辑是包含在主时间轴中,在影片剪辑中使用_parent和_root的效果是一样的。如果影片剪辑与主时间轴相差两个层级,即当影片剪辑包含在另一个位于主时间轴中的影片剪辑中,这时在该影片剪辑中使用_par
7、ent指代的是它上一级的影片剪辑,而_root是指它上两级的主时间轴。在主时间轴中不能使用_parent,因为主时间轴没有上一级。可以用数字来方便地说明这种层级关系。主时间轴,它始终是最初级,作为层级0。主时间轴中的一个影片剪辑处于层级1。如果影片剪辑中包含另一个影片剪辑,它处于层级2。对层级2上的影片剪辑来说,_parent指代的就是层级1上的影片剪辑,而不管对哪一级来说,_root始终指代层级0上的主时间轴。除了用点记号连接_root和实例名,还可以使用方括号表示_root上的对象。对上例中的按钮“STOP”来说,如下所示的3种方法作用是一样的:rool.stop();_root.roll
8、.stop();_rootroll.stop();还有一个关键字this,它代表脚本当前所在的层级。如果脚本位于主时间轴中,this即指代主时间轴;如果脚本位于影片剪辑中,this即指代该影片剪辑。所以以上语句还可以用以下两种方式表示:this.roll.stop();thisroll.stop();使用_root和this时还可以用变量来定位影片剪辑,如下所示:var mcInsName = roll;_rootmcInsName.stop();今后我们会遇到这种情况,即有roll0rool99共100个影片剪辑实例,可以使用下面的语句来控制它们:on (release) for (var
9、i = 0; i=100)this.ladybug._alpha = 100;6.回主场景,选择透明度减小按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on(release)this.ladybug._alpha -= 5;if(this.ladybug._alpha=0)this.ladybug._alpha = 0;7.回主场景,选择放大按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on(release)this.ladybug._xscale += 5;this.ladybug._yscale += 5;8.回主场景,选择缩小按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on
10、(release)this.ladybug._xscale -= 5;this.ladybug._yscale -= 5;9.回主场景,选择高品质按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on(release)this.ladybug._highquality=2;10.回主场景,选择低品质按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on(release)this.ladybug._highquality=0;可见性的设置稍微复杂一些,其步骤如下:11.回主场景,选择可见性按钮,按F8键将其转换为电影剪辑(实质是将可见性按钮包含于此电影剪辑中),选择此电影剪辑,按F9键打开动作脚
11、本编辑窗口,输入以下代码:onClipEvent(load)w = true;注:设置一变量w记录此按钮点击状态,w实际是此电影剪辑内时间轴变量,不能用var语法声明它,否则变为本地变量。12.返回主场景,双击可见性电影剪辑,进入此电影剪辑,再选择可见性按钮,按F9键打开动作脚本编辑窗口,输入以下代码:on(release)w=!w;if(w=true)_parent.ladybug._visible=true;else_parent.ladybug._visible=false;至此,全部工作完成。为网页添加放大或缩小文字最近小弟看到这样的一个好东东,就是可以为我们的主页设置出一些可以放大或
12、缩小的文字来,好东东不想独占还是拿出来吧!代码如下:!- Beginvar speed = 20;var cycledelay = 1000;var maxsize = 48;var x = 0;var y = 0;var themessage, size;var esize = ;function initArray() this.length = initArray.arguments.length;for (var i = 0; i this.length; i+) thisi = initArray.argumentsi;var themessage2 = new initArray(
13、免费软件 随意传播,中国电脑教育报和资源站点,网站:,请多多留意最新版);if(navigator.appName = Netscape)document.write();if (navigator.appVersion.indexOf(MSIE) != -1)document.write();function upwords()themessage = themessage2y;if (x maxsize) x+;setTimeout(upwords(),speed);else setTimeout(downwords(),cycledelay);if(navigator.appName =
14、 Netscape) size = ;document.wds.document.write(size+themessage+esize);document.wds.document.close();if (navigator.appVersion.indexOf(MSIE) != -1)wds.innerHTML = +themessage+;wds.style.fontSize=x+pxfunction downwords()if (x 1) x-;setTimeout(downwords(),speed);else setTimeout(upwords(),cycledelay);y+;
15、if (y themessage2.length - 1) y = 0;if(navigator.appName = Netscape) size = ;document.wds.document.write(size+themessage+esize);document.wds.document.close();if (navigator.appVersion.indexOf(MSIE) != -1)wds.innerHTML = +themessage+;wds.style.fontSize=x+pxsetTimeout(upwords(),speed);/ End -在放大缩小实体时,总
16、是两边同时放大和缩小,如何固定一边,放大或缩小一边呢?按工具面板的Snap to Objects按钮,然后选择菜单ModifyThansformEdit Center命令(注意,要先把此对象生成Graphic,或者MC),在实体中心出现空心的十字号后,用鼠标拖动这个十字,把它移动到需要固定不变的哪个边线上,接下来缩放另一边即可。如果水平调宽和水平调高同时进行,那么把十字移动到需要固定的两个边线交汇的哪个角上。Action Script_图片放大缩小移动类-flash Action Script_图片放大缩小移动类-flash-图片放大缩小移动类: -class-class ZoomOpenMove private var obj:MovieClip; private var pos_scale:Number; private var x_speed:Number
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1