如何调入SWF文件及控制它的大小和位置?


如何调入SWF文件及控制它的大小和位置?
heping0403 发表于 2006-9-7 9:24:00
我们都知道,SWF文件是Flash输出的标准文件格式之一,它的应用十分广泛,在PowerPiont、Authorware等软件中都可以轻松调用。那么如何在Flash中使用SWF文件呢?本文将为大家详细介绍相关的技术。

  在使用Flash制作课件时,常常需要使用一些现成的SWF文件,通过Flash中的导入命令使用SWF文件,会彻底破坏原有的文件结构。另外,对于大型的课件,我们可以进行分组合作,然后通过调用SWF将课件组合起来,这样可以减小课件主文件的体积,也便于整体合作制作大型课件。 


  SWF文件的调用及控制


  下面我们通过介绍课件《只有一个地球》(如图所示)的制作方法,来学习调用并控制SWF文件。在图中,灰色部分的尺寸为340×300(像素),这部分就是SWF文件的播放区域。右侧是文字按钮(如:片段一、片段二……),它们是SWF文件的调用按钮,下方是SWF文件的控制按钮,从左往右可以实现的功能有:播放、暂停、快退、快进、回到开头、跳到结尾、增加音量和减小音量。在课件的存放目录中有6个SWF文件,它们是被调用的文件,名称分别为:片段一、片段二、片段三……这些文件的场景尺寸跟灰色部分一样大,都是340×300(像素),另外还有一个片头动画名为:片头动画.swf。



  第1步 启动Flash Mx 2004,使用绘图工具箱中的工具绘制界面,并添加一些文字。分别按“Ctrl+F8”创建所需要的按钮,然后拖放到界面的合适位置。按“Ctrl+F8”创建一个名为“SWF”的影片(MovieClip),里面不进行任何设置,然后按“Ctrl+L”打开Library库,将SWF影片拖放到场景中,并将其中心点和灰色区域的左上角重合,再单击〔Properties〕(属性)按钮,将其“Instance Name”设置为“swf”,最后保存文件到某个文件夹(注意:所调用的SWF也要放置在这个文件夹中,否则将不能调用,如果原SWF文件设置了背景色,在调用时都会自动去除成为透明色)。


  第2步 为场景的第1帧添加如下Actions语句:


fscommand("fullscreen", true);


//设置课件全屏播放。



fscommand("allowscale", false);


//当课件窗口大小改变时,课件中的内容保持原有尺寸。


loadMovie("片头动画.swf", "swf");


//调用片头动画到影片SWF中。


movie_sound = new Sound(swf);


//捆绑影片SWF中的声音文件。


movie_sound.setVolume(50);


//设置影片SWF中音乐的音量为50,最高是100。


yinliang = movie_sound.getVolume();


//设置变量yinliang,使其值与影片SWF的音量相等。


  第3步 为场景右侧的文字按钮加上Actions 语句,“片段一”按钮的语句如下:


on (release) {


unloadMovie("swf");


//将SWF影片中的原有内容清除。


loadMovie("片段一.swf", "swf");


//调用片段一文件至SWF影片中。


}


“片段二”按钮的语句如下:


on (release) {


unloadMovie("swf");


loadMovie("片段二.swf", "swf");


}


  其余的几个文字按钮的语句与上面类似,只需要改变调用文件的名称即可。


  第4步 下面分别来设置控制按钮的Actions语句:


  “播放”按钮:


on (release) {


root.swf.play();


}//当单击该按钮时,当前场景中的SWF影片播放。


“暂停”按钮:


on (release) {


_root.swf.stop();


}//当单击该按钮时,当前场景中的SWF影片暂停。


“快退”按钮:


on (release) {


if (_root.swf._currentframe>=40) {


_root.swf.gotoAndStop(_root.swf._currentframe-40);


//当单击该按钮时,如果当前帧大于或等于40时,场景中的SWF影片从当前帧处减去40帧,实现快退,这里的40可根据具体情况设置。


} else {


_root.swf.gotoAndStop(1);


//否则SWF影片跳转到第1帧。


}


}


“快进”按钮:


on (release) {


_root.swf.gotoAndStop(_root.swf._currentframe+40);


}//单击该按钮,SWF影片从当前帧加上40帧,从而实现了快进。


“回到开头”按钮:


on (release) {


_root.swf.gotoAndStop(1);


}


“跳到结尾”按钮:


on (release) {


dangqianzhen = _root.swf._totalframes;


//设置变量dangqianzhen的数值等于SWF影片的总帧数,即最后一帧。


root.swf.gotoAndStop(dangqianzhen);


//让SWF影片跳转到最后一帧。


}


“增大音量”按钮:


on (release) {


if (_root.yinliang<=90) {


_root.yinliang = _root.yinliang+10;


_root.movie_sound.setVolume(_root.yinliang);


//如果当前音量的数值小于或等于90就加上10,然后设置SWF影片中的音乐音量为增加后的值。


} else {


_root.movie_sound.setVolume(100);


//否则设置音量为100,这是最大音量。


}


}


“减小音量”按钮:


on (release) {


if (_root.yinliang>=10) {


_root.yinliang = _root.yinliang-10;


_root.movie_sound.setVolume(_root.yinliang);


//如果当前音量的数值大于或等于10就减去10,然后设置SWF影片中的音乐音量为减少后的值。


} else {


_root.movie_sound.setVolume(0);


//否则设置音量为0,这样就没有声音了。


}


}


  最后在课件发布时,一定要把所有的SWF文件都放置到同一个文件夹中,否则在使用课件时,会提示调用的SWF文件找不到。


  特殊SWF文件调用技巧


  并不是所有的SWF文件都正好与我们的调用要求相符合,对于一些不合乎我们要求的SWF文件,我们也可以通过设置其属性,力求让其与我们的要求相吻合。下面介绍三种特殊情况的处理方法。


  1. SWF文件的尺寸不符合:当调用的SWF文件的尺寸大于或小于显示区域时,我们可以通过设置SWF影片的坐标和尺寸实现精确定位。语句示例如下:


_root.swf._X=0;


_root.swf._Y=0;


//设置SWF影片横坐标和纵坐标的数值,可根据具体情况设置。


_root.swf._width =340;


_root.swf.._height = 300;


//设置SWF影片长度和宽度的数值,可根据具体情况设置,单位为像素。


_root.swf._xscale=50;


_root.swf._yscale=50;


//设置SWF影片纵横比例为原来的二分之一,默认的原尺寸为100,可根据具体情况设置。


  2. 只需要SWF文件中的一部分:当调用的SWF文件中的前一部分我们不需要,可以在使用loadMovie调用时,加上一句语句:_root.swf.gotoAndPlay(150)(假设从150帧处是我们需要的内容)。当SWF文件的后一部分不需要时,我们只需要在播放到该部分时,让影片暂停即可。其实当SWF文件加载到影片中的时候,影片的所有控制语句都可以用来对SWF文件进行控制,如:透明度(_alpha),角度(_rotation)等。
3. SWF文件中有特殊标志:一些SWF文件中的某个位置可能会有单位或作者的标志,在调用时会影响课件的整体效果。此时可以在SWF影片所在层的上面再增加一个新层,然后在新层中对应的位置绘制自己的标志遮挡原有的标志,如果原有的标志是运动的,绘制的标志也应进行相应的运动。

posted on 2010-11-26 14:55 aiaiwoo 阅读(1312) 评论(0)  编辑  收藏 所属分类: AC3/FLEX


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔分类

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜