注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

.

.

 
 
 

日志

 
 

Flash加载外部文件  

2009-03-14 17:29:04|  分类: flash课件制作 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 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测试.

二.调用外部*.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测试

三.调用外部*.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可以写在帧上。

五.调用外部声音文件(加载到场景中)

外部声音文件必须和正在编辑的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测试。

加载外部图片

如果你的动画中有很多的图片.如果都放到一个SWF文件.可能打开或是下载会很慢.这样就影响了观看效果及速度,那么你可以利用载入外部图片的方法,只要把图片按名称放到你网上的一个目录里(和你的SWF文件同一个目录),那么就可以解决这个问题

前十祯你做一个载入LOADING.从第十一祯开始

新建一个图层.起名为AS层

在AS图层的第十一祯加入一个关键祯,然后打开动作面板,加入以下AS

i = 0;//初始化变量

loadMovie ("p040.jpg", "pic");//在播放原始 SWF 文件的同时将p040.jpg 文件

//加载到 Flash Player 中的叫PIC的这个影片剪辑中。

上面的语句是实现了加载一张.我们要它加载多张.所以要用到IF语句.在AS层的第六十祯处加入一个关键祯,打开动作面板,加入AS语句:

i++;//变量i递增

   if (i >= 21) {//当变量i递增到>=21时.这里的21是因为我准备了二十一张要加载的图.如果你加载十张.那就把这里的21改为10就可以了

     i = 0;//则变量为0,即重新加载

   }

   loadMovie (("p04" + i) + ".jpg", "pic");//如果不是.则继续加载.这里的p04+i就等p04i.也就是说i是几.这里就是p04*,比如i为12,则p04+i就等于p0412

   gotoAndPlay (12);//跳转到第十二祯

所以.在这里给图片起文件名时.就要按照这个原则来起的.准备好的图片要和你的主调用SWF文件入在同一个目录下,或者你也可以加载时用绝对路径,那就要改成http://www.XXXXX.cn/p04   target="_blank" >

图片的大小最好是事先调整好的.在你做好的PIC这个加载用的MC里.它的位置是放在XY坐标为0的位置,加载进来图是以这个MC左上角为准的,也就是说加载进来图的左上角与加载用的MC的左上角是重合的

--------------

loadMovie("图片名",newname);

以上语法以下用法

on(release){

   loadMovie("pic.jpg", "mc");

mc._x=50;

mc._y=50

mc._xscale=40;

mc._yscale=40

}

--------------------------------------------------------------------------------

加载外部文本文件的3种方法

不管那样方法,文本文件要和主文件在同一目录下,再就是在这儿的文本文件名为 b.txt

*第一种方法txt=

1、创建一个文本框,给此文本框一个变量名txt;

2、文本格式为:动态;

3、选:多行输入

4、在第一帧上增加脚本语言。(按F9)

loadVariablesNum("b.txt",0);//b.txt是文件名,0是场景中的根目录

然后打开poems.txt文件,在记事本里输入:txt=

注意:在加载之前对文本文件进行转换,另存为Unicode编码格式。

*第二种方法 在主文件帧上输入防乱码的AS

按钮实现引用外部文本文件的效果:

第一步:主场第一帧AS:

System.useCodePage = true;//防止乱码

第二步:在按钮上写AS:

on (release) {

_root.loadVariables("b.txt");//b.txt文本名

}

**第三种方法 使用构造器,将文本拆分为若干字符串来显示.从根本上防止乱码.

,也就是说直接在 txt 里面写东西就行了。代码如下:

lala = new LoadVars();//构造函数;创建 LoadVars 对象。然后可使用该 LoadVars 对象的方法来发送和加载数据

lala.onData = function(rw) {//当lala被实例化并显示在时间轴上时将触发

a_txt.text = replacePunc(rw);//

};

function replacePunc(str) {//执行将文本拆分为多个字符串

var tempArray = str.split("\r\n");//拆分为多个子字符串

var tempstr = new String();

for (var i = 0; i<tempArray.length; i++) {

tempstr += tempArray+newline;

}

return tempstr;

}

System.useCodepage = true;//通知 Flash Player使用 传统代码页来解释外部文本

lala.load("b.txt");

 

 

 

 

  评论这张
 
阅读(294)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017