乘号怎么打-此网页包含的内容将不使用安全的https
![画中画怎么用](/uploads/image/0180.jpg)
2023年4月3日发(作者:百度文库不显示)
本节知识要点
1、loadMovie("url",target[,method])
"url":要加载的SWF文件或JPEG文件的绝对路径或相对路径。
使用相对路径一般应将播放的.swf文件与要加载的.swf文件放在同一文件夹中。绝对路径
必须有详细的路径地址。
target:目标影片剪辑(mc元件)的名称和路径。目标影片剪辑将替换为加载的SWF文件
或图像。
method可选参数,一般可以不选。
如果SWF文件加载到目标影片剪辑,则可使用该影片剪辑的目标路径来定位加载的SWF
文件。加载到目标的SWF文件或图像会继承目标影片剪辑的位置、旋转和缩放属性。加载的
图像或SWF文件的左上角与目标影片剪辑的注册点对齐
2、MovieClip._lockroot
因为用loadMovie()加载的外部文件是加载到一个mc元件上,所以,外部文件中指向场景
(_root)的路径此时应该是指向这个mc元件而不是主文件的场景。使用MovieClip._lockroot可以
使加载的文件中的_root仍然是指向原来文件的场景.
3、my_tHighestDepth()
返回一个整数,即影片剪辑的下一个可用的深度值
4、switch
创建动作脚本语句的分支结构。像if动作一样,switch动作测试一个条件,并在条件返
回true值时执行语句。
5、case
用法:caseexpression:statements
定义用于switch动作的条件。如果case关键字后的expression参数在使用全等(===)
的情况下等于switch动作的expression参数,则执行statements参数中的语句。
6、_global对象
创建全局变量、对象或类。
例题---仿电视的多画面与画中画效果
请看效果:
点击查看动画效果<
制作思路:只要在同一场景中使用多个mc,使它们同时载入外部.swf文件或者jpg,那么
就可以实现多画面效果。但是,在多画面与画中画的状态下,因为各mc载入外部.swf文件时
有一个时间差,所以各画面仿电视的同步播放比较困难。这需要被调入的外部.swf文件和主场
景文件的配合。
我们打开外部文件“”文件,AS脚本为:
1、在帧上的脚本
第1帧:
gotoAndPlay(x);//这个x是主场景中设置的全局变量;
最后1帧:
x=1;//设置本地变量x
打开主文件,在这个源文件上的脚本如下:
第1帧:
复制代码
代码如下:
stop();
swf1="";//设置变量swf1来表示外部.swf文件
loadMovie(swf1,e);//在目标元件e上调入swf1
e._x=125;//设置目标元件e的坐标(即调入swf1的坐标)
e._y=50;
第2帧:
复制代码
代码如下:
clip=[a,b,c,d];//设置数组对象,数组元素为4个目标mc
lp=["/UploadFile/2003-10/","
t/UploadFile/2004-4/","/UploadFile/2004-3/200437175
","/UploadFile/2003-11/","5
/UploadFile/2003-11/","/flasher123/mmz/dsx
","/UploadFile/2003-10/"];
//设置数组对象,数组元素为网上.swf
_global.x=_root.e._currentframe;
//把目标mc播放的当前帧(即调入外部文件的当前帧)用全局变量x表示;
//下面脚本中使调入外部文件的从全局变量x帧开始播放;
m=getNextHighestDepth();//取得下一个可用的mc的深度;
pths(m);//设置mc元件a的深度为下一个可用的mc的深度;
loadMovie(swf1,a);//在目标元件a上调入swf1
a._x=125;//设置目标元件a的坐标(即调入swf1的坐标)
a._y=50;
a._xscale=50;//设置目标元件a的放大系数(即调入swf1的放大系数)
a._yscale=50;
j=k=0;//设置变量初值
第3帧
复制代码
代码如下:
_global.x=_root.e._currentframe;//与第2帧上的脚本类同
m=getNextHighestDepth()
pths(m)
loadMovie(swf1,b);
b._x=125;
b._y=250;
b._xscale=50;
b._yscale=50;
第4帧
复制代码
代码如下:
_global.x=_root.e._currentframe;//与第2帧上的脚本类同
m=getNextHighestDepth()
pths(m)
loadMovie(swf1,c);
c._x=400;
c._y=250;
c._xscale=50;
c._yscale=50;
第5帧
复制代码
代码如下:
_global.x=_root.e._currentframe;//与第2帧上的脚本类同
m=getNextHighestDepth();
pths(m);
loadMovie(swf1,d);
d._x=400;
d._y=50;
d._xscale=50;
d._yscale=50;
unloadMovie(e);//删除最开始调入的swf
第6帧
复制代码
代码如下:
e._lockroot=true;//使被选中的元件在调入的外部文件的_root指向本身的主时间轴
loadMovie(lp[k],e);//配合按扭中的mc的变化;
2、在按扭上的脚本
在“多屏幕”按扭上的脚本:
复制代码
代码如下:
on(release){
nextFrame();
}
在“单屏”按扭上的脚本:
复制代码
代码如下:
on(release){
for(i=0;i<4;i++){
unloadMovie(clip[i]);//删去元件a,b,c,d上加载的外部swf文件;
clip[i].swapDepths(-i-1);//降低a,b,c,d的深度,使元件e加载的swf能显示出来;
clip[i]._alpha=100;//元件a,b,c,d的透明度有可能降低,这里把恢复它们的透明度
}
nextFrame();//到下一帧停下
}
在“屏幕选择”按扭上的脚本
复制代码
代码如下:
on(press){
txt="";//设置文本txt为空
switch(j=j+1){//创建switch动作脚本语句的分支结构
case1://如果j==1,就执行
a._alpha=40;//元件a是透明度为40
break;//跳出switch循环体。以下类同
case2:
a._alpha=100;
b._alpha=40;
break;
case3:
b._alpha=100;
c._alpha=40;
break;
case4:
c._alpha=100;
d._alpha=40;
break;
case5:
d._alpha=100;
j=0;
break;
}
}
在“更换节目”按扭上的脚本
复制代码
代码如下:
on(release){
if(j==0){
txt="请先选择屏幕";
}else{//当j不等于0时,执行下列命令:
clip[j-1]._alpha=100;//恢复被选中的元件的透明度
clip[j-1]._lockroot=true;//使被选中的元件在调入的外部文件的_root指向本身的主时间
轴
loadMovie(lp[k],clip[j-1]);//在clip[j-1]元件中调入数组lp中第k个元数表示的网址
k++;
if(k==){//数组lp中元素个数
k=0;
}
}
}
在第6帧上“多屏”按扭上的脚本
复制代码
代码如下:
on(release){
gotoAndStop(1);
}
在第6帧上“更换节目”按扭上的脚本
复制代码
代码如下:
on(release){
k++;
if(k==7){//数组lp中有7个元素
k=0;
}
e._lockroot=true;
loadMovie(lp[k],e);//在e元件中调入数组lp中第k个元数表示的网址
}
作业
把2至4帧的脚本用自定义函数简化;把在“屏幕选择”按扭上的脚本用函数或者数组变量简
化。
更多推荐
画中画怎么用
发布评论