返回列表 回复 发帖

[原创]Flash加载外部文件

Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
一.调用外部文本文件:(文本文件开头要以flash中的动态文本框的变量名开头,如
msg=".........."这样的形式,要和编辑的Flash文件放在同一目录下)
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.制作两个按扭(一个调用,一个清除)拖放到场景中。
3.调用按扭上添加AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg.txt",msg);//调用和你编辑的Flash处于同一目录下的msg.txt文本文件到动态文本msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
4.清除按扭上的AS:
on(release){//松开鼠标后清楚动态文本框中的内容;
msg="";
}
5.Ctrl+Enter测试.
当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2)
在第一帧上加如下代码:
stop();
_root.bt1.onRelease=function(){
loadVariables("msg.txt",msg);
System.useCodepage=true;
}
_root.bt2.onRelease=function(){
_root.msg="";
}
Ctrl+Enter测试.

调用的外部文本文件能够滚动:
1.用工具箱中的文本工具,选择动态文本,给动态文本一个变量名,如:msg,在编辑区拖出一个文本框
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.新建一层,在动态文本框的右侧用矩形工具画一个竖条,高度和动态文本一样;再制作一个向上的方向"箭头"按F8转为按扭元件;复制一个"箭头"按扭,垂直镜象,使这两个按扭和竖条的两端对齐.
4.调用按扭上的AS:
on(release){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
清除按扭上的AS:
on(release){
_root.msg="";//清除动态文本框中的内容;
}
向上的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
向下的按扭上的AS:
on(press){//在按扭的感应区上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.

当然代码也可以写在帧上:(调用按扭的实例名是bt1,清除按扭的实例名是bt2,向上按扭的实例名是:up,向下按扭上的实例名是down)
在第一帧上加如下代码:
_root.bt1.onRelease=function(){//松开鼠标后执行下面的代码;
loadVariables("msg1.txt",msg);//调用msg1.txt文本文件到动态文本框msg中;
System.useCodepage=true;//使外部文件的中文字符能够正确显示;
}
_root.bt2.onRelease=function(){//松开鼠标后执行
_root.msg="";//清除动态文本框中的内容;
}
_root.up.onPress=function(){//在向上按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll-1;//文本向下滚动一行;
}
_root.down.onPress=function(){//在向下按扭上每按一次鼠标执行下面的代码;
_root.msg.scroll=_root.msg.scroll+1;//文本向上滚动一行;
}
Ctrl+Enter测试.

压缩包原文件及效果

[upload=rar]viewFile.asp?ID=107879[/upload]

2004-4/20044552930207.rar (13.14 KB)

压缩包原文件2及效果

[upload=rar]viewFile.asp?ID=107880[/upload]

2004-4/20044553136177.rar (12.84 KB)

压缩包原文件3及效果

[upload=rar]viewFile.asp?ID=107881[/upload]

2004-4/20044553247137.rar (14.21 KB)

压缩包原文件4及效果

[upload=rar]viewFile.asp?ID=107882[/upload]

2004-4/20044553452205.rar (13.76 KB)

二.调用外部*.swf文件(加载到影片剪辑中):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.新建立一个空的影片剪辑mymc,把它放在场景中,实例名是:mymc.
2.新建一层,制作两个按扭(一个调用,一个清除)拖放到此层中
3.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
loadMovie("flash8.swf","mymc");//加载外部的"flash8.swf"文件到"mymc"空影片剪辑中;
mymc._x=70;//加载影片的X轴坐标;
mymc._y=20;//加载影片的Y轴坐标;
mymc._xscale=70;//加载影片的宽度;
mymc._yscale=70;//加载影片的高度;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(mymc);//删除用loadMovie加载的*.swf文件;
}
Ctrl+Enter测试
压缩包原文件7
[upload=rar]viewFile.asp?ID=107883[/upload]
压缩包原文件8 [upload=rar]viewFile.asp?ID=107884[/upload]

2004-4/20044553712473.rar (262.8 KB)

2004-4/20044553814728.rar (267.48 KB)


三.调用外部*.swf文件(加载到时间轴上):
外部*.swf文件要和编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
loadMovie("flash8.swf",1);//加载外部的"flash8.swf"文件到场景中,层深为1;
}
清除按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码
unloadMovie(1);//删除层深为1的用loadMovie所加载的"flash8.swf"文件
}
Ctrl+Enter测试。
当然二和三的代码都可以写在帧上。
四.调用外部图片(加载到影片剪辑中)
外部图片必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.制作一个空的影片剪辑,拖到场景中,实例名是:mymc;
3.时间轴上第一帧上的AS:
i=0;//定义一个变量i,并且赋初值为0;
调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
i++;
if(i>9){//因为外面这有9张图,当变量大于9的时候,让变量为1,这样能够使加载的图片是连续的,即,每点一次按扭,就换一张图,等到换到第9张图,再点按扭,则循环到第一张图(j1.jpg到j9.jpg,因为没有j0.jpg,如果i=0,则会提示没有找到j0.jpg);
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}
清除按扭上的AS:
on(release){
unloadMovie(mymc);//删除掉用loadMovie加载到影片剪辑的图片;
}
Ctrl+Enter测试。
当然AS可以写在帧上。
压缩包原文件6 [upload=rar]viewFile.asp?ID=107885[/upload]

2004-4/2004455423014.rar (83.75 KB)

五.调用外部声音文件(加载到场景中)
外部声音文件必须和正在编辑的Flash文件放在同一目录下
1.制作两个按扭(一个调用,一个清除)拖放到场景中
2.调用按扭上的AS:
on(release){//鼠标离开按扭后执行下面的代码;
mySound=new Sound();//建立一个新的声音对象mySound;
mySound.loadSound("zaihuni.mp3",true);//加载外部的*.mp3声音文件到mySound对象中,并且按流的方式播放(参数为false时,是以装载完后播放);
}
清除按扭上的AS:
on(release){
mySound.stop();//当按下清除按扭后,停止声音的播放
}
Ctrl+Enter测试。

压缩包原文件5(没有传声音,你只需在解压缩后的文件夹里加入一个MP3的声音文件,然后在原文件里把相应的声音文件名改一下就可以) [upload=rar]viewFile.asp?ID=107886[/upload]

2004-4/20044554755370.rar (21.11 KB)

自己先顶一下吧。
闲来无事,给大家轻松一下:
[upload=swf]UploadFile/2004-4/20044555242130.sw

2004-4/20044555242130.swf (249.79 KB)

辛苦!感谢楼主!!
整理的不错,请楼主自己把这个教程整理到技术区上面的个人教程收集帖里,我会把你的这个帖子放在"技术区经典帖子里".
谢!
好的。

[此贴子已经被作者于2004-4-5 18:10:02编辑过]

不行呀

版主可否帮帮我,不行呀,我的qq是 6439358
好! 顶! 照单全收!
学习之中,谢谢!
哦 这是学习FLASH全站的最基本的东西啊 恩 要再巩固巩固...谢谢
我有个类似的问题需要解决
是关于loadMovie外部一个swf后,loading百分比显示不正常问题
请看这个贴
http://flash8.net/bbs/viewthread.php?tid=162367&page=1

外部调用SWF文件

请帮看一下,我用文件23调用FLASH8.SWF为什么不好使啊。
[upload=rar]viewFile.asp?ID=110700[/upload]

2004-4/200441512625822.rar (250.2 KB)

版主大哥 我想问一下 这个代码
on(release){//鼠标离开按扭后执行下面的代码;
i++;
if(i>9){
i=1;
}
loadMovie(("j"+i)+".jgp",mymc);//从j1.jpg开始加载图片到影片剪辑mymc中;
mymc._x=110;//以下设置加载图片的属性
mymc._y=35;
mymc._xscale=130;
mymc._yscale=130;
}


这个空的mymc是怎样控制载入 外部mc大小和位置的
我按照上面的代码做了,可是没用啊 还需要对外部的 mc大小重新进行设置吗?
这里真好!!
今天才看到,好帖,顶~:)
我顶顶顶,我正想学加载外部文件
回复hyh-003
因为你的mc 没有命名为mymc;
好啊,好得我都没话说了
强烈要求斑竹加2分!
漂亮
强烈要求将这个帖子收录到置顶的教程里面去!
很多人都问又不肯查找前面的帖子!得不到回答还这啊那的
楼主写的真好,谢谢你的教程,同时想请问你,如果想不用"调用"这个按钮,打开SWF就直接自动调用外部的SWF,如何做啊.
呵呵~ 除了第5个声音的调用外其它的都吸收了~
这些程序的毛病94没有进行判断文件是否LOAD完...........................[em01]
返回列表