用户ID :  密码 : 

登 录

注 册

时代财富科技公司 FortuneAge Technology Co., Ltd. 校园博客客服网站(新)

我的资料

moo

博客信息

积分:62
等级:1级 lv 1
日志总数:18
发表评论总数:3 (查看)
获得评论总数:1
发表留言总数:0
浏览总数:4724

最新公告

又开始写博啦...

我的日历

最新评论

RE:响应鼠标的动作实例
AS://捕捉鼠标划过的速度和划过的位置function ...

RSS

首页 -> 技術相关->flash加载外部文件的技术实现
flash加载外部文件的技术实现

Flash可以通过帧、按扭、影片剪辑来调用外部文件。调用的外部文件包括:外部文本文件、外部程序文件、外部*.swf文件、外部图片文件、外部音乐文件、外部脚本文件。
加载外部swf到层
onClipEvent (load) {
    this.gotoAndstop(1);
}
onClipEvent (enterFrame) {
    now = level2.getBytesLoaded()
    all = level2.getBytesTotal()
             loaded = int(now/all*100);
    this.gotoAndStop(loaded);
    this.bfb = loaded+"%";
    if (now == all) {
        _root.gotoAndPlay("begin");
    }
}
 
加载到MC
this.onEnterFrame = function() {
    if (this.getBytesLoaded()<this.getBytesTotal()) {
        Total = this.getBytesTotal()/1000;
        Received = this.getBytesLoaded()/1000;
        Percentage = (Received/Total)*100;
        loaded = int(Received/Total*100);
        percent = loaded+"%";
        _root.player.musicper = this.percent;
        _root.player.musicbar.gotoAndStop(int(Percentage));
    } else {
        gotoAndPlay(2);
        this.onEnterFrame = null;
    }
};
stop();

加载记事本文件
mytxtData = new LoadVars();
 
mytxtData.onData = function(rw) {
    if (rw.indexOf("\r\n")>-1) {
        trace("oker ");
    }
    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[i]+newline;
    }
    return tempstr;
}
 
System.useCodepage = true;
mytxtData.load("mydata.txt");

加载XML文件
var doc1 = new XML();
//---------------------
doc1.ignoreWhite = true;
doc1.load("data.xml");
doc1.onLoad = function(success) {
    if (success) {
        e = doc1.firstChild.firstChild;
        a = e.attributes.kind;
        b = e.childNodes[0].firstChild.nodeValue;
        c = e.childNodes[1].firstChild.nodeValue;
        d = e.childNodes[2].firstChild.nodeValue;
        text1 = a+"----------"+b+"----------"+c+"----------"+d;
    } else {
        trace("载入失败");
    }
};
stop();

直接载入图片
pic = new Array();
for (i; i<9; i++) {
    pic[i] = "mypic"+i+".jpg";
    loadMovie(pic[i], "mc"+i);
    trace(pic[i]);
}

载入MP3音乐(直接)
myMusic = new Sound(_root.mySound);
myMusic.loadSound("song1.mp3", false);
myMusic.setVolume(130);
var playing = false;
preloading = true;
this.onEnterFrame = function() {
    mTotal = _root.myMusic.getBytesTotal();
    mLoaded = _root.myMusic.getBytesLoaded();
    if (preloading == true && mLoaded > 0){
        mPercent = Math.round((mLoaded/mTotal)*100);
        _root.preloader._visible = true;
        _root.preloader.mFiller._xscale = mPercent;
        if(mPercent >= 100){
            myMusic.start(0,999);            
            preloading = false;
            playing = true;
            _root.preloader._visible = false;
            delete this.onEnterFrame;
        }
    }
};
 
调用外部文本文件
(文本文件开头要以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测试。

网友评论

共 0 页,0 条记录  

用户名:
密码:
您的评论:



发 表 评 论