如何在一个动画作品中加载一个swf文件?
解决思路
我们利用【浏览器/网络】里面的loadmovie可以把相对地址或者绝对地址的awf文件,jpeg文件方便的加载到一部flash动画中。并且我们还可以随时卸载它。下面我们就来看看这个语句的语法以及用法。
具体步骤
1,??首先我们按照前两部分的知识制作两个flash动画,分别命名为flash1和flash2。
2,??登陆互联网,把flash2的swf文件发布到网站上,并获得一个作品的绝对地址。例如flash2.swf的绝对地址是:http://www.flash8.net/viewfile.asp?ID=54278
3,??我们打开flash1文档,新建一层,在第1帧新建一个按钮,命名为loadmovie?flash2。如图3.2.2-5所示。
图3.2.2-5??新建按钮loadmovie
4,??选中此按钮,打开as面板,按照我们先前学过的知识,给按钮增加触发事件on(release)。
5,??选择【动作】|【浏览器/网络】中的loadmovie命令,右侧会出现它的参数面板。如图3.2.2-6所示。
图3.2.2-6????loadmovie参数面板
6,??下面我们了解一下面板中的各种参数的设置规律。【RUL】所欲加载的文件的绝对地址或者相对地址。我们在这里填写的是flash2.swf的绝对路径http://www.flash8.net/viewfile.asp?ID=54278
7,??【位置】这里面有两项,一个是级别,另一个是目标。级别是加载的影片要放置到哪个级别层,并分配级别层编号。默认的级别层是0。分配个级别层的编号决定了相对其他级别的位置。如级别层为1,则加载的影片在原影片的上方。目标就是加载的影片赋予到一个影片剪辑中,这个影片剪辑的属性变化也决定了加载后的影片的变化。例如位置,大小,等等。在此例中,我们选择“级别1”。
8,??【变量】指定发送变量所使用的?HTTP?方法。一共三项选择,“不发送”,假如没有变量发送则学此项。“以GET方式发送”,用来发送少量变量。“以POST方式发送”用来发送长的变量字符串。在此例中我们没有变量发送,所以选择“不发送”。
9,??保存,登陆互联网进行测试。当我们播放flash1.swf文件时,单机“loadmovie”按钮,就会看到flash2.swf文件被我们加载到flash1.swf文档中了。如图3.2.2-7所示。
图3.2.2-7???最后效果
10,请参看源文件FLASH1.fla,FLASH2.fla。
注??意?——填写欲加载的swf文件的绝对地址的时候,朋友们经常把“http://”忽略了,我们要填入他的完整的地址。
提??示?——利用loadmovie我们还可以加载jpeg图片,还可以是txt文件,但txt文件必须以表达式的方式出现。
技??巧?——获得swf文件的绝对地址的方法,选择论坛帖子中的【浏览文件】鼠标右键中的属性,就可以看到它的URL。
试一试?——上例中我们把FLASH2.SWF加载在FLASH1.SWF得上一层中,那么我们试一试FLASH2.SWF完全替换FALSH1.SWF。
非凡提示
loadmovie命令可以答应我们把一部完整的动画分成几个部分,分别放置在网络空间中,播放一部分以后加载一部分,实现动态的加载,这样大大缓解了文件体积过大而产生的下载等待缓慢的问题。也可以把一部动画中的各个元素分别放置,例如动画与音乐分开放置。
非凡说明
在论坛上,朋友们对loadmovie的问题很多。原因是loadmovie的用途非常广泛。我们可以利用它的特性来制作内容庞大的电子相册,观看我一个照片以后,卸载前一个,同时加载后一个,这样始终保持文件的体积精悍。
相关问题1,如何利用loadmovie在本地硬盘制作电子相册?
使用loadmovie语句来制作电子相册是一个非常简单有效果的办法。因为,假如我们利用传统的办法把照片导入到flash中去,文件的体积必然庞大。最重要的是照片的数量是不断增加的,假如我们想把新照片增加到电子相册中,就必然要在flash中修改,是非常麻烦的。我们利用loadmovie就可以轻松的解决这个问题。
现在我们就利用目前把握的知识,最简单的办法来实现电子相册的效果。
首先,我们新建一个flash文档,并整理四张jpeg图片分别命名为pic1,lic2……,把他们放到同一目录下。
第二,在图层1的第2帧插入要害帧,打开as面板,填入as:
??????stop();
??????loadMovieNum(“pic1.jpg”,1);
?????以此类推,分别在第3帧,第4帧,第5帧进行如上设置。
第三,新建一个图层,在第1帧我们制作一个按钮,并给第1帧添加as;stop();使其开始的时候停止播放。
第四,选择按钮,在按钮上添加as??;on(release){?????//当按钮点击时,执行下面的语句。?
????????????????????????????????????nextFrame();??????//播放下一帧
}
我们来测试一下效果吧?当单击按钮的时候,图片被加载进来了。这是一个比较简单的例子,朋友们可以通过编写按钮的控制as来进行加载。也可以在加载的同时设置图片的各种属性,例如透明度,位置等等。
本例只是向朋友们简单介绍一下loadmovie的功能。参看源文件pic。当我们向电子相册里面增加照片的时候,只要把?as设置一些就ok了,非常方便。
???注??意??——在图层1的第2帧的as中,为什么没有写成loadmovieNum(“pic1.jpg”,0);呢?原因在于,加载进来的jpg会替代同级别的内容。假如这样设置的话,就把我们设置的按钮替换掉了。我们利用这个特性,在加载第3帧的时候没有卸载第2帧的图片。
???提??示??——1,loadMovie的图片个是必须是jpeg格式。
??????????????????2,loadMovie进来的swf和jpg都会以场景的左上角对齐。
3,使用绝对地址的方法与上例相同。
2,如何指定导入外部swf文件的位置?
这个问题是关于loadmovie语句中问得最多的问题。在上一个问题中,我们已经向大家介绍了导入进来的swf和jpg会默认与场景的左上角对齐。但是有的时候我们需要认为确定导入的位置,那么我们就通过建立一个空的影片剪辑来实现。
解决思路是我们在场景中可以有效果的控制影片剪辑的位置,大小等属性,那么我们把swf或者jpg导入到这个影片剪辑中,通过制定这个影片剪辑的属性来完成修改导入文件的属性。
首先我们预备一个flash1文档和flash2文档,我们要把flash2导入到flash1中。
我们下把flash2发布成名称为2的swf文件。
然后在flash1中我们新建一个影片剪辑,命名为“mymc”。在这个影片剪辑中我们什么也不做,直接保存。这就是所说的空的影片剪辑。
把“mymc”拖放到场景中,在下面的属性面板中,填入这个影片剪辑的分身名“mymc”。如图3.2.2-8所示。?
图3.2.2-8???设置影片剪辑的分身名
新建一层,在第1帧填加as:stop();是动画在第1帧就停止播放。然后在第1帧种绘制一个按钮。选中按钮,打开as面板,填写as:
on(release){??????????????????????//当按钮单击时执行下面的动作。
loadMovieNum(“2.swf”,?mymc);?????//加载2.swf到目标影片剪辑mymc
setProperty(“mymc”,_x,150);????????//设置影片剪辑mymc的x轴位置为150。
setProperty(“mymc”,_y,50);?????????//设置影片剪辑mymc的y轴位置为50。
}????????
?好了,我们保存发布。单击按钮以后,2.swf被加载到1.swf影片中了。我们可以通过改变影片剪辑的坐标位置来改变导入影片的位置,大小等属性。
注??意??——1,空的影片剪辑mymc必须要拖放到场景中。
????????????????2,必须要给影片剪辑设置分身名,不然as无法判定要控制谁?
提??示??——1,上例的设置1.swf文件和2。Swf文件必须在同一目录下。
????????????????2,load进来的swf文件的背景,帧频等,会与主动画保持一致。
1,?如何卸载已经加载影片中的swf?
在【浏览器/网络】里面有一条语句unloadMovieNum,是专门用来卸载loadMovie进来的swf和jpg的。我们双击这个语句,右侧会出现它的参数面板。他的参数比较好理解,因为我们在上面学习了loadMovie,unloadMovieNum是与其相反的。
【位置】中有“级别”和“目标”两项,用于卸载各类别中的load进来的文件。在“级别”中,你要设置好,你欲卸载文件的级别数。例如,你把1.swf文件loadMovie到了影片的第2层,想要卸载它,那么就在级别上填入2。假如想卸载目标,那就要填写目标的名称。与loadMovie的用法相同,只不过作用是相反的。
UnloadMovieNum可以加在按钮上,也可以放置在帧中。
2,?可以精确控制load进来的swf文件的播放时间吗?
这位朋友的意思是,加载进来的swf影片不马上播放,而是指定时间播放。例如:想在主动画的第100帧播放外部动画1.swf,那么在100帧填加loadmovie,由于网络速度,电脑配置等原因,而无法在100帧的时候播放这个1.swf动画。有办法解决吗?从flash的角度来讲,这是办不到的。正如上面所说的,加载命令是可以实现的,但是由于客观因素的影响,我们无法控制播放时间。