在Flash课件中正确调用SWF文件

  我们都知道,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影片所在层的上面再增加一个新层,然后在新层中对应的位置绘制自己的标志遮挡原有的标志,如果原有的标志是运动的,绘制的标志也应进行相应的运动。

时间: 2024-09-17 04:56:02

在Flash课件中正确调用SWF文件的相关文章

webview-android调用swf文件,本地的,我想直接把文件放在资源中使用

问题描述 android调用swf文件,本地的,我想直接把文件放在资源中使用 详细描述下,我有几个swf文件,然后在新建工程中放在drawable中或者其他地方,然后用webview调用打开,我感觉思路很乱. 假如放在drawable中会不会导出apk后无法使用,swf文件确切位置如何寻找,webview调用好像要用url.或者有没有更好的办法来打开swf文件 解决方案 http://blog.csdn.net/yearafteryear/article/details/8959475 解决方案

Flash课件中测试题信手拈来

在Flash 5.0时代,我们如果要在Flash课件中制作测试题,需要使用ActionScript脚本,这让普通老师无从下手.而在Flash MX中,我们虽然可以通过修改现成的模板来制作测试题,但操作仍不方便.如今,随着Flash 2004时代的到来,我们制作测试题不仅简单.直观.方便.高效,而且可以摆脱模板的约束,这是因为有了交互式学习组件.到底如何让Flash测试题"信手拈来"呢?下面笔者以制作一个多项选择题为例进行说明. 一.插入交互式学习组件 1. 在适当的层中,新建一个&qu

flashcs4中导出的swf文件在其他根目录下播放时其中插入的flv文件无法播放

问题描述 flashcs4中导出的swf文件在其他根目录下播放时其中插入的flv文件无法播放 flashcs4中导出的swf文件在其他根目录下播放时其中插入的flv文件无法播放要怎么解决呢?求各位大神帮忙 解决方案 你把fla文件也弄出来放到一个文件夹里面试试

flash中加载XML文档中文本到swf文件方法

创建一个新的 Flash 文档,并将其另存为 xmlReviews.fla.     将下面的代码添加到时间轴中的第 1 帧: this.createTextField("my_txt", 10, 10, 10, 320, 100);  代码如下 复制代码 my_txt.autoSize = "left"; my_txt.border = true; my_txt.multiline = true; my_txt.wordWrap = true; var revie

使用fscommand如何正确调用exe文件

command 这里假如要调用外部的exe,需要把exe的文件放入fscommand文件夹中,调用的flash必需导成exe格式的才行,并且和fscommand文件夹在同目录,这样就形成了flash导成的exe才能调用应用程序exe.fscommand("exec","xxx.exe") 例子: 以上是第一个方法. 假如放在同个目录中,就需要用到getURLgetURL("xxx.exe") //这里exe放在和flash同目录中.. 调用硬盘中

VB2010中如何调用DLL文件

问题描述 使用仰邦科技的LED控制卡BX_5MT,使用文档的DEMO里没有VB.Net的程序.只有VB6的DEMO,里面有个bas的类文件,是用Declarefunction声明文件使用dll的,dll文件不用regsvr32注册的,在引用里也没看到该DLL的.现在用VB2010,在添加引用了添加dll文件,提示"未能添加引用,请确保该文价可访问并且是一个有效的程序集或COM组件",不能添加引用,也就不能用声明,也没发用import.请问是不是该DLL文件不支持VB2010.另在DEM

在FLASH动画中打开任何格式文件的方法

flash动画 在FLASH中,大家可以调用以下语句来打开文件.该方法简单,但存在一个很大的缺陷.就是只能打开可执行文件: flcommand("exec",""); 既然可以打开可执行文件,那是不是可以通过打开一个可执行文件A,然后再用A来打开我们想打开的文件呢?下面,我们就可以使用bat文件来做这个可执行文件A吧. 1.在FLASH中的ACTIONSCRIPT中写入以下语句: on(release){fscommand("exec",&quo

详解Android studio中正确引入so文件的方法

相信很多朋友在使用Android studio开发中,遇到过如何引入第三方so文件的问题,然而第三方官方仅仅给出了ADT环境下的集成方式. Android studio中默认使用的是gradle编译方式,与ADT编辑方式不一样,那么so文件应当如何引入呢? 其实很简单.这里以集成JPUSH为例,看一下so文件如何引入到编译环境,最终到JNI直接可以调用该so文件. 首先,在我们的Module的根目录中建立libs目录,将jpush集成SDK中的so文件分别拷入,截图如下: 然后就是编写我们的bu

请教各位高手,C#中如何调用Matlab文件

问题描述 请问,如何在C#中调用matlab函数,谢谢各位高手!我做了个C#界面,用的是vs2005版本的.可原来的一个程序是用Matlab写的,我想知道,能否在C#中调用这个程序.感谢!